2010-11-01 2 views
5

Je travaille sur le code qui ont les attributs suivants sur certaines de ses méthodes:Désactiver CLS vérification de la conformité en C#

[CLSCompliantAttribute(false)] 

Comment est-ce que quand je construis le code tel quel, je vois que la conformité vérification est en cours, et quand je commente, il semble que la vérification de la conformité n'est pas effectuée?

J'ai attendu le comportement face ...

+0

Que voulez-vous dire? – SLaks

+0

Pouvez-vous poster votre message d'avertissement? – max

Répondre

8

Ajout [CLSCompliant(false)] marque le membre, vous ajoutez comme non conforme.

Si vous marquez le membre comme non conforme, le compilateur ne vous avertira pas s'il n'est pas conforme. (Puisque vous avez déjà dit que ce n'est pas conforme.)

Si, toutefois, le membre est marqué comme conforme (explicitement ou indirectement à partir d'un attribut au niveau de l'assemblage), mais qu'il n'est pas conforme (par exemple, il prend un uint), le compilateur vous avertira (puisque l'attribut ment maintenant sur le membre).

+0

donc, si je reçois l'avertissement - cela signifie-t-il que j'ai l'attribut: [CLSCompliant (true)] quelque part dans mon code dans une portée plus élevée? – user429400

+0

@user: Quel avertissement? – SLaks

+4

Vous l'avez probablement au niveau de l'assemblage. Recherchez '[assembly: CLSCompliant (true)]' dans Propriétés/AssemblyInfo.cs –

1

Vous pouvez l'ajouter à AssemblyInfo.cs par exemple, et regrouper tout assembly: *. Comme:

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