2010-11-01 54 views
5

我的工作是有它的一些方法如下屬性代碼:禁用CLS遵守C#檢查

[CLSCompliantAttribute(false)] 

它是如何,當我爲的是建立的代碼,我看到合規正在執行檢查,並且當我將其註釋掉時,似乎沒有執行合規性檢查?

我預期相反的行爲......

+0

你是什麼意思? – SLaks 2010-11-01 17:31:21

+0

你能發佈你的警告信息嗎? – max 2010-11-01 17:36:07

回答

8

添加[CLSCompliant(false)]馬克你將它添加到爲不符合的成員。

如果您將該成員標記爲不合規,編譯器將不會警告您是否不合規。 (因爲您已經表示它不符合)。但是,如果成員標記爲符合(顯式或間接來自程序集級屬性),但實際上它不符合(例如,它需要uint),編譯器會發出警告(因爲該屬性現在躺在成員身上)。

+0

因此,如果我得到警告 - 是否意味着我的代碼中有更高範圍的屬性:[CLSCompliant(true)]? – user429400 2010-11-01 17:33:23

+0

@user:哪個警告? – SLaks 2010-11-01 17:35:33

+4

您可能在裝配層面有它。在Properties/AssemblyInfo.cs中查找'[assembly:CLSCompliant(true)]' – 2010-11-01 17:36:00

1

例如,您可以將它添加到AssemblyInfo.cs中,並對所有程序集進行分組:*。 Like:

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")]