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 {}

Voir aussi

Référence

System.CLSCompliantAttribute

Concepts

CLS (Common Language Specification)