CA1014 : Marquez les assemblies avec CLSCompliantAttribute

Propriété Valeur
Identificateur de la règle CA1014
Titre Marquer les assemblies avec CLSCompliantAttribute
Catégorie Conception
Le correctif a un effet disruptif ou non disruptif Sans rupture
Activé par défaut dans .NET 10 Non
Langues applicables C# et Visual Basic

Cause

Un assembly n'a pas l'attribut System.CLSCompliantAttribute appliqué.

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. La bonne conception exige que tous les assemblages 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 pas un avertissement provenant 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