Freigeben über


CA1014: Assemblys mit CLSCompliantAttribute markieren.

Eigenschaft Wert
Regel-ID CA1014
Titel Assemblies mit dem Attribut "CLSCompliantAttribute" markieren.
Kategorie Design
Fix führt zu Unterbrechungen oder bleibt funktionsfähig Untrennbar
Standardmäßig in .NET 10 aktiviert Nein
Anwendbare Sprachen C# und Visual Basic

Ursache

Auf eine Assembly wurde 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 CLS-kompatibel sind.

So beheben Sie Verstöße

Um einen Verstoß gegen diese Regel zu beheben, fügen Sie der Assembly das entsprechende Attribut hinzu. Anstatt die gesamte Assembly als nicht kompatibel zu markieren, sollten Sie ermitteln, welche Typen oder Typmember nicht kompatibel sind, und diese Elemente dann als nicht kompatibel markieren. Wenn möglich, sollten Sie eine CLS-kompatible Alternative für nicht kompatible Member bereitstellen, damit eine größtmögliche Zielgruppe auf die gesamte Funktionalität Ihrer Assembly zugreifen kann.

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie keine Warnung dieser Regel. Wenn Sie nicht möchten, dass die Assembly konform ist, wenden Sie das Attribut an und setzen Sie seinen Wert auf false.

Unterdrücken einer Warnung

Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.

#pragma warning disable CA1014
// The code that's violating the rule is on this line.
#pragma warning restore CA1014

Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad auf none in der Konfigurationsdatei fest.

[*.{cs,vb}]
dotnet_diagnostic.CA1014.severity = none

Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.

Beispiel

Das folgende Beispiel zeigt eine Assembly, bei der das System.CLSCompliantAttribute-Attribut verwendet wurde, mit dem die CLS-Kompatibilität deklariert wird.

[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace

Siehe auch