CA1014 : Marquer les assemblys avec CLSCompliantAttribute
Propriété | Value |
---|---|
Identificateur de la règle | CA1014 |
Titre | Marquer les assemblys avec CLSCompliantAttribute |
Catégorie | Conception |
Le correctif est cassant ou non cassant | Sans rupture |
Activé par défaut dans .NET 8 | Non |
Cause
Un assembly n’a pas System.CLSCompliantAttribute l’attribut appliqué à celui-ci.
Description de la règle
La spécification de langage commun CLS (Common Language Specification) définit des restrictions de dénomination, des types de données, et des règles auxquelles les assemblys doivent se conformer s'ils doivent être utilisés à l'échelle de différents langages de programmation. Une bonne conception exige que tous les assemblys indiquent explicitement la conformité CLS avec CLSCompliantAttribute. Si cet attribut n'est pas présent sur un assembly, l'assembly n’est pas conforme.
Il est possible qu’un assembly conforme CLS contienne des types ou des membres de type qui ne sont pas conformes.
Comment corriger les violations
Pour corriger une violation de cette règle, ajoutez l’attribut à l’assembly. Au lieu de marquer l’assembly entier comme non conforme, vous devez déterminer quel type ou les membres de type ne sont pas conformes et marquer ces éléments comme tels. Si possible, vous devez fournir une alternative conforme CLS pour les membres non conformes afin que le public le plus large possible puisse accéder à toutes les fonctionnalités de votre assembly.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle. Si vous ne souhaitez pas que l’assembly soit conforme, appliquez l’attribut et définissez sa valeur sur false
.
Supprimer un avertissement
Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.
#pragma warning disable CA1014
// The code that's violating the rule is on this line.
#pragma warning restore CA1014
Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none
dans le fichier de configuration.
[*.{cs,vb}]
dotnet_diagnostic.CA1014.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.
Exemple
L’exemple suivant montre un assembly auquel a été appliqué l’attribut System.CLSCompliantAttribute qui le déclare conforme CLS.
[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace