2010-11-01 2 views
5

Я работаю над кодом, которые имеют следующие атрибуты на некоторых из его методов:Отключить ЦБС проверки на соответствие в C#

[CLSCompliantAttribute(false)] 

Как это, что, когда я строй кода, как есть, я вижу, что соблюдение проверка выполняется, и когда я прокомментирую это, кажется, что проверка соответствия НЕ выполняется?

Я ожидал, что поведение, противоположное ...

+0

Что вы имеете в виду? – SLaks

+0

Можете ли вы разместить свое предупреждающее сообщение? – max

ответ

8

Добавление [CLSCompliant(false)] пометит члена вы добавите его в качестве несоответствующей.

Если вы отметите элемент как несоответствующий, компилятор не предупредит вас, если он не соответствует требованиям. (Так как вы уже сказали, что это не соответствует требованиям.)

Если, однако, элемент отмечен как совместимый (явно или косвенно из атрибута уровня сборки), но на самом деле он несовместим (например, он принимает uint), компилятор предупредит вас (поскольку атрибут теперь лежит вокруг члена).

+0

поэтому, если я получу предупреждение - значит ли это, что у меня есть атрибут: [CLSCompliant (true)] где-то в моем коде в более высоком пространстве? – user429400

+0

@user: Какое предупреждение? – SLaks

+4

Возможно, у вас это на уровне сборки. Найдите '[сборка: CLSCompliant (true)]' в свойствах/AssemblyInfo.cs –

1

Вы можете добавить его в AssemblyInfo.cs, например, и сгруппировать всю сборку: *. Нравится:

using System; 
using System.Reflection; 
using System.Runtime.InteropServices; 
[assembly: AssemblyDescription("")] 
[assembly: AssemblyConfiguration("")] 
[assembly: AssemblyCulture("")] 
[assembly: CLSCompliant(false)] 


// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components. If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type. 
[assembly: ComVisible(false)] 

// The following GUID is for the ID of the typelib if this project is  exposed to COM 
[assembly: Guid("d29c53b6-88e4-4b33-bb86-f39b4c733542")] 

// Version information for an assembly consists of the following four  values: 
// 
//  Major Version 
//  Minor Version 
//  Build Number 
//  Revision 
// 
// You can specify all the values or you can default the Revision and Build  Numbers 
// by using the '*' as shown below: 
[assembly: AssemblyVersion("1.0.0.0")] 
[assembly: AssemblyFileVersion("1.0.0.0")] 

 Смежные вопросы

  • Нет связанных вопросов^_^