CA1014 : Marquer les assemblys avec CLSCompliantAttribute
TypeName |
MarkAssembliesWithClsCompliant |
CheckId |
CA1014 |
Catégorie |
Microsoft.CSharp |
Modification avec rupture |
Modification sans rupture |
Cause
Un assembly ne se voit pas appliquer l'attribut System.CLSCompliantAttribute.
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. Un design correct stipule que tous les assemblys indiquent explicitement la conformité CLS avec CLSCompliantAttribute. Si l'attribut n'est pas présent sur un assembly, l'assembly n'est pas conforme.
Un assembly conforme CLS peut contenir des types ou des membres de type non conformes.
Comment corriger les violations
Pour corriger une violation de cette règle, ajoutez l'attribut à l'assembly. Au lieu de marquer l'ensemble de l'assembly comme non conforme, vous devez déterminer quels type ou membres de type sont non conformes et marquer ces éléments comme tel. Si possible, vous devez fournir une solution de substitution conforme CLS aux membres non conformes afin que l'audience la 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 affectez-lui la valeur false.
Exemple
L'exemple suivant présente un assembly auquel est appliqué l'attribut System.CLSCompliantAttribute qui le déclare comme étant conforme CLS.
Imports System
<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace
using System;
[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
using namespace System;
[assembly:CLSCompliant(true)];
namespace DesignLibrary {}