2010-11-01 13 views
5

estoy trabajando en código que tiene los siguientes atributos en algunos de sus métodos:Desactivar CLS comprobación de cumplimiento en C#

[CLSCompliantAttribute(false)] 

¿Cómo es que cuando construyo el código como está, veo que el cumplimiento se está realizando una comprobación, y cuando lo comente, parece que NO se está realizando la verificación de conformidad?

he esperado el comportamiento opuesto ...

+0

¿Qué quiere decir? – SLaks

+0

¿Puedes publicar tu mensaje de advertencia? – max

Respuesta

8

Adición de marcas [CLSCompliant(false)] el miembro se agrega a como no conforme.

Si marca el miembro como no conforme, el compilador no le avisará si no es compatible. (Dado que ya ha dicho que no es compatible)

Si, sin embargo, el miembro está marcado como compatible (explícita o indirectamente desde un atributo de nivel de ensamblaje), pero de hecho no cumple (por ejemplo, toma un uint), el compilador le advertirá (ya que el atributo ahora está mintiendo sobre el miembro).

+0

entonces, si recibo la advertencia, ¿significa que tengo el atributo: [CLSCompliant (verdadero)] en algún lugar de mi código en un ámbito superior? – user429400

+0

@user: ¿Qué advertencia? – SLaks

+4

Probablemente lo tenga en el nivel de ensamblaje. Busque '[assembly: CLSCompliant (true)]' en Properties/AssemblyInfo.cs –

1

Puede agregarlo a AssemblyInfo.cs por ejemplo, y agrupar todo el conjunto: *. Me gusta:

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