Marquage toutes les classes dans un projet conforme CLS
-
21-09-2019 - |
Question
Si j'ai un projet et je marque comme
<Assembly: CLSCompliant(True)>
Dois-je mettre CLSCompliant(True)
avant tous classe dans le projet, ou sont-ils tous par défaut à CLSCompliant?
La solution
Ajout de l'attribut CLSCompliant au niveau de l'assemblage ne modifie pas les classes de toute façon, il n'a donc pas make des classes CLS conforme. Ce qu'il fait est de forcer le compilateur à soulever tout ce qui ne se conforme pas comme une erreur. Il est toujours votre responsabilité de vous réellement que les classes ne cassent pas les règles.
Cela dit bien, oui, il ne filtre vers le bas et affecte toutes les classes de l'assemblée sans qu'il soit nécessaire d'ajouter à nouveau à chaque classe. De là :
Si aucun attribut CLS est appliqué à un le type, ce type est supposé avoir la même conformité CLS que l'Assemblée dont le type est défini.
Cet article est également tout à fait une belle vue d'ensemble sur la façon dont cela fonctionne, ce que vous devez faire, et pourquoi vous pouvez le faire.
Autres conseils
Ce que je sais CLSCompliant est, par défaut, votre ensemble est non conforme. À mon avis, tous les projets doivent être CLSCompliant. Les projets qui sont des outils ou des bibliothèques, qui vont être utilisés par d'autres applications devraient être CLSCompliant. Alors que la construction Outils Visual Studion pour Windows Live, nous devions nous assurer que notre code n'a pas donné d'erreurs de CLSCompliant ou des avertissements.