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

Voir aussi