Share via


Markieren von Assemblys mit CLSCompliantAttribute

Aktualisiert: November 2007

     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.

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

Siehe auch

Konzepte

CLS (Common Language Specification)

Referenz

System.CLSCompliantAttribute