CLSCompliantAttribute-Klasse

Gibt an, ob ein Programmelement mit der CLS (Common Language Specification) kompatibel ist. Die Klasse kann nicht vererbt werden.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
<SerializableAttribute> _
<AttributeUsageAttribute(AttributeTargets.All, Inherited:=True, AllowMultiple:=False)> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class CLSCompliantAttribute
    Inherits Attribute
'Usage
Dim instance As CLSCompliantAttribute
[SerializableAttribute] 
[AttributeUsageAttribute(AttributeTargets.All, Inherited=true, AllowMultiple=false)] 
[ComVisibleAttribute(true)] 
public sealed class CLSCompliantAttribute : Attribute
[SerializableAttribute] 
[AttributeUsageAttribute(AttributeTargets::All, Inherited=true, AllowMultiple=false)] 
[ComVisibleAttribute(true)] 
public ref class CLSCompliantAttribute sealed : public Attribute
/** @attribute SerializableAttribute() */ 
/** @attribute AttributeUsageAttribute(AttributeTargets.All, Inherited=true, AllowMultiple=false) */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class CLSCompliantAttribute extends Attribute
SerializableAttribute 
AttributeUsageAttribute(AttributeTargets.All, Inherited=true, AllowMultiple=false) 
ComVisibleAttribute(true) 
public final class CLSCompliantAttribute extends Attribute

Hinweise

Das CLSCompliantAttribute-Attribut kann auf die folgenden Programmelemente angewendet werden: Assembly, Modul, Klasse, Struktur, Enumeration, Konstruktor, Methode, Eigenschaft, Feld, Ereignis, Schnittstelle, Delegat, Parameter und Rückgabewert. CLS-Kompatibilität ist dabei nur für Assemblys, Module, Typen und Membertypen von Bedeutung, nicht für Teile einer Membersignatur. Deshalb wird CLSCompliantAttribute beim Anwenden auf Parameter- oder Rückgabewert-Programmelemente ignoriert.

Wenn auf ein Programmelement kein CLSCompliantAttribute angewendet wird, gelten folgende Voreinstellungen:

  • Die Assembly ist nicht CLS-kompatibel.

  • Der Typ ist nur dann CLS-kompatibel, wenn der Typ oder die Assembly, die ihn umschließen, CLS-kompatibel ist.

  • Der Member eines Typs ist nur dann CLS-kompatibel, wenn der Typ CLS-kompatibel ist.

Wenn eine Assembly als CLS-kompatibel markiert wird, muss jeder öffentlich verfügbar gemachte nicht CLS-kompatible Typ unter Verwendung des false-Arguments mit CLSCompliantAttribute markiert werden. Ebenso müssen bei einer als CLS-kompatibel gekennzeichneten Klasse alle nicht CLS-kompatiblen Member einzeln markiert werden. Alle nicht kompatiblen Member müssen entsprechende CLS-kompatible Alternativen bereitstellen.

Attribute, die auf Assemblys oder Module angewendet werden, müssen in C# nach den using-Klauseln (Imports in Visual Basic) und vor dem Code auftreten.

Weitere Informationen über das Verwenden von Attributen finden Sie unter Erweitern von Metadaten mithilfe von Attributen.

Hinweis

Der aktuelle Microsoft Visual Basic-Compiler generiert bewusst keine CLS-Kompatibilitätswarnungen. Künftige Versionen des Compilers werden diese Warnung allerdings ausgeben.

Beispiel

Im folgenden Beispiel wird ein CLSCompliantAttribute auf eine ganze Assembly angewendet.

using System;
    [assembly:CLSCompliant(true)]

Die folgende Deklaration generiert eine CLS-Kompatibilitätswarnung, weil der Typ UInt32 nicht in der CLS definiert ist.

 public int SetValue(UInt32 value);

Wenn die Deklaration mit einem CLSCompliantAttribute markiert ist, werden keine Compilerwarnungen oder -fehler generiert.

[CLSCompliant(false)]
 public int SetValue(UInt32 value);

Vererbungshierarchie

System.Object
   System.Attribute
    System.CLSCompliantAttribute

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

CLSCompliantAttribute-Member
System-Namespace
Attribute-Klasse

Weitere Ressourcen

CLS (Common Language Specification)
Erweitern von Metadaten mithilfe von Attributen