CA1014: Assemblys mit CLSCompliantAttribute markieren
TypeName |
MarkAssembliesWithClsCompliant |
CheckId |
CA1014 |
Kategorie |
Microsoft.Design |
Unterbrechende Änderung |
Nicht unterbrechend |
Ursache
Auf eine Assembly wird das System.CLSCompliantAttribute-Attribut nicht angewendet.
Regelbeschreibung
In der Common Language Specification (CLS) sind Benennungseinschränkungen, Datentypen und Regeln definiert, denen Assemblys entsprechen müssen, wenn sie in verschiedenen Programmiersprachen verwendet werden sollen. Um guten Entwurfsprinzipien gerecht zu werden, muss bei allen Assemblys die CLS-Kompatibilität mit CLSCompliantAttribute explizit angegeben werden. Wenn das Attribut in einer Assembly nicht vorhanden ist, ist die Assembly nicht kompatibel.
Eine CLS-kompatible Assembly kann Typen oder Typmember enthalten, die nicht kompatibel sind.
Behandeln von Verstößen
Um einen Verstoß gegen diese Regel zu beheben, fügen Sie der Assembly das Attribut hinzu. Anstatt die gesamte Assembly als nicht kompatible Assembly zu definieren, sollten Sie feststellen, welcher Typ oder welche Typmember nicht kompatibel sind, und diese Elemente entsprechend kennzeichnen. Nach Möglichkeit sollten Sie eine CLS-kompatible Alternative für nicht kompatible Member bereitstellen, damit möglichst viele Benutzer auf die Funktionen der Assembly zugreifen können.
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnung dieser Regel. Wenn die Assembly nicht kompatibel sein soll, wenden Sie das Attribut an, und legen Sie seinen Wert auf false fest.
Beispiel
Das folgende Beispiel zeigt eine Assembly mit dem System.CLSCompliantAttribute-Attribut, das die Assembly als CLS-kompatibel deklariert.
Imports System
<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace
using System;
[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
using namespace System;
[assembly:CLSCompliant(true)];
namespace DesignLibrary {}