(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

ClassInterfaceAttribute-Klasse

Gibt den Typ der Klassenschnittstelle an, die für eine für COM verfügbar gemachte Klasse generiert werden soll (sofern eine Schnittstelle erstellt wird).

System.Object
  System.Attribute
    System.Runtime.InteropServices.ClassInterfaceAttribute

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

[AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class, Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class ClassInterfaceAttribute : Attribute

Der ClassInterfaceAttribute-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeUnterstützt von  Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsClassInterfaceAttribute(ClassInterfaceType)Initialisiert eine neue Instanz der ClassInterfaceAttribute-Klasse mit dem angegebenen ClassInterfaceType-Enumerationsmember.
Öffentliche MethodeUnterstützt von  Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsClassInterfaceAttribute(Int16)Initialisiert eine neue Instanz der ClassInterfaceAttribute-Klasse mit dem angegebenen ClassInterfaceType-Enumerationswert.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftTypeIdBei Implementierung in einer abgeleiteten Klasse wird ein eindeutiger Bezeichner für dieses Attribute abgerufen. (Von Attribute geerbt.)
Öffentliche EigenschaftUnterstützt von  Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsValueRuft den ClassInterfaceType-Wert ab, der beschreibt, welcher Schnittstellentyp für die Klasse generiert werden soll.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeUnterstützt von  Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsEqualsInfrastruktur. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. (Von Attribute geerbt.)
Öffentliche MethodeUnterstützt von  Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetHashCodeGibt den Hashcode für diese Instanz zurück. (Von Attribute geerbt.)
Öffentliche MethodeUnterstützt von  Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeIsDefaultAttributeBeim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist. (Von Attribute geerbt.)
Öffentliche MethodeMatchBeim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Von Attribute geerbt.)
Öffentliche MethodeUnterstützt von  Portable KlassenbibliothekUnterstützt in .NET für Windows Store-AppsToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetIDsOfNamesOrdnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoRuft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoCountRuft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.InvokeStellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von Attribute geerbt.)
Zum Seitenanfang

Dieses Attribut kann auf Assemblys oder Klassen angewendet werden.

Dieses Attribut steuert, ob das Type Library Exporter-Tool (Tlbexp.exe) automatisch eine Klassenschnittstelle für die attributierte Klasse generiert. Eine Klassenschnittstelle hat denselben Namen wie die Klasse selbst, der Name weist jedoch einen Unterstrich als Präfix auf. Wenn sie verfügbar gemacht wird, enthält die Klassenschnittstelle alle public, nicht static Member der verwalteten Klasse, einschließlich der von der zugehörigen Basisklasse vererbten Member. Verwaltete Klassen können nicht auf eine Klassenschnittstelle zugreifen. Dies ist jedoch nicht erforderlich, da sie direkt auf die Klassenmember zugreifen können. Tlbexp.exe generiert einen eindeutigen Schnittstellenbezeichner (Interface Identifier, IID) für die Klassenschnittstelle.

Klassenschnittstellen können duale oder auf Dispatch beschränkte Schnittstellen sein. Sie haben die Möglichkeit, das Generieren der Klassenschnittstelle zu unterdrücken und stattdessen eine benutzerdefinierte Schnittstelle zu erstellen. Sie machen eine Klassenschnittstelle verfügbar bzw. unterdrücken sie, indem Sie einen System.Runtime.InteropServices.ClassInterfaceType-Enumerationsmember angeben. Wenn Sie ClassInterfaceAttribute auf eine Assembly anwenden, bezieht sich das Attribut auf alle Klassen in der Assembly, es sei denn, einzelne Klassen überschreiben die Einstellung durch eigene Attribute.

Obwohl mit Klassenschnittstellen die Aufgabe des expliziten Definierens von Schnittstellen für alle Klassen entfällt, wird von ihrer Verwendung in Produktionsanwendungen dringend abgeraten. Duale Klassenschnittstellen ermöglichen Clients das Binden an ein bestimmtes Schnittstellenlayout, das bei der Entwicklung der Klasse Änderungen unterworfen ist. Betrachten Sie als Beispiel eine verwaltete Klasse, die eine Klassenschnittstelle für COM-Clients verfügbar macht. Die erste Version der Klasse enthält die Methoden North und South. Ein nicht verwalteter Client kann an die Klassenschnittstelle gebunden werden, wobei North als erste Methode in der Klassenschnittstelle und Methode South als zweite Methode bereitgestellt werden. Betrachten Sie nun die nächste Version der Klasse, bei der die neue Methode East zwischen den Methoden North und South eingefügt wurde. Nicht verwaltete Clients, die versuchen, über die alte Klassenschnittstelle eine Bindung an die neue Klasse herzustellen, rufen die Methode East anstelle von Methode South auf, da sich die Position der Methoden innerhalb der Schnittstelle geändert hat. Darüber hinaus haben Änderungen am Layout einer Basisklasse auch Auswirkungen auf das Layout der Klassenschnittstelle für alle abgeleiteten Klassen. Diese Versionsprobleme treten bei verwalteten Clients mit direkter Bindung an Klassen nicht auf. Spezielle Richtlinien zur Verwendung einer Klassenschnittstelle finden Sie unter Einführung in die Klassenschnittstelle.

Tlbimp.exe (Type Library Importer-Tool) wendet auf importierte Klassen immer den ClassInterfaceType.None-Enumerationsmember an, um anzugeben, dass vorhandene COM-Klassen nie verwaltete Schnittstellen verfügbar machen.

Im folgenden Beispiel wird veranschaulicht, wie ClassInterfaceAttribute mit dem ClassInterfaceType-Wert AutoDispatch angewendet wird, wodurch eine IDispatch-Schnittstelle für MyClass generiert wird.


using System.Runtime.InteropServices;

[ClassInterface(ClassInterfaceType.AutoDispatch)]
public class MyClass
{
   public MyClass() {}
}


.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

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

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

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft