Anwenden von Interop-Attributen
Aktualisiert: November 2007
Der System.Runtime.InteropServices-Namespace unterscheidet drei Kategorien von Interop-spezifischen Attributen: Attribute, die Sie während der Entwurfszeit zugewiesen haben, Attribute, die durch COM-Interop-Tools und APIs beim Konvertierungsprozess zugewiesen wurden, sowie Attribute, die entweder von Ihnen oder von COM-Interop zugewiesen wurden.
Weitere Informationen, wie Sie verwaltetem Code Attribute zuweisen können, finden Sie unter Erweitern von Metadaten mithilfe von Attributen. Interop-spezifische Attributen lassen sich Typen, Methoden, Eigenschaften, Parametern, Feldern und anderen Membern in gleicher Weise zuweisen wie andere benutzerdefinierte Attribute.
Entwurfszeitattribute
Zum Anpassen des Ergebnisses des Konvertierungsprozesses, der von COM-Interop-Tools und APIs durchgeführt wird, können Sie Entwurfszeitattribute verwenden. In der folgenden Tabelle werden die Attribute beschrieben, die Sie dem verwalteten Quellcode zuweisen können. Die hier beschriebenen Attribute können gegebenenfalls auch von COM-Interop-Tools zugewiesen werden.
Attribut |
Beschreibung |
---|---|
Legt fest, ob zum Marshallen des Typs der Automatisierungsmarshaller oder ein benutzerdefinierter Proxy und Stub verwendet wird. |
|
Steuert den Schnittstellentyp, der für eine Klasse generiert wird. |
|
Bezeichnet die CLSID der ursprünglichen Co-Klasse, die aus einer Typbibliothek importiert wurde. Dieses Attribut wird üblicherweise von COM-Interop-Tools angewendet. |
|
Gibt an, dass eine Co-Klassen- oder Schnittstellendefinition aus einer COM-Typbibliothek importiert wurde. Dieses von Common Language Runtime verwendete Flag zeigt an, wie der Typ aktiviert und gemarshallt wird. Dieses Attribut verhindert, dass der Typ zurück in eine Typbibliothek exportiert wird. Dieses Attribut wird üblicherweise von COM-Interop-Tools angewendet. |
|
Zeigt an, dass eine Methode aufgerufen werden soll, wenn die Assembly für die Verwendung von COM registriert wird. Dadurch kann durch den Benutzer erstellter Code während der Registrierung ausgeführt werden. |
|
Bezeichnet Schnittstellen, welche Ereignisquellen für die Klasse darstellen. Dieses Attribut kann von COM-Interop-Tools zugewiesen werden. |
|
Zeigt an, dass eine Methode aufgerufen werden soll, wenn die COM-Registrierung der Assembly aufgehoben wird. Dadurch kann durch den Benutzer erstellter Code während des Prozesses ausgeführt werden. |
|
Macht Typen für COM unsichtbar, wenn der Attributwert false lautet. Dieses Attribut zum Steuern der Sichtbarkeit in COM kann einem einzelnen Typ oder einer ganzen Assembly zugewiesen werden. Standardmäßig sind alle verwalteten, öffentlichen Typen sichtbar, d. h. das Attribut ist zur Anzeige nicht erforderlich. |
|
Bestimmt den COM-Dispatchbezeichner (DISPID, Dispatch Identifier) für eine Methode oder ein Feld. Dieses Attribut enthält den DISPID für die beschriebene Methode, das Feld oder die Eigenschaft. Dieses Attribut kann von COM-Interop-Tools zugewiesen werden. |
|
Bestimmt die physische Position der einzelnen Felder in einer Klasse (wird zusammen mit StructLayoutAttribute verwendet, wenn unter LayoutKind die Option Explicit eingestellt ist). |
|
Gibt den globalen eindeutigen Bezeichner (GUID, Globally Unique Identifier) einer Klasse, einer Schnittstelle oder einer ganzen Typbibliothek an. Die an das Attribut übergebene Zeichenfolge muss in einem Format vorliegen, das einem zulässigen Konstruktorargument für den Typ System.Guid entspricht. Dieses Attribut kann von COM-Interop-Tools zugewiesen werden. |
|
Gibt an, welche IDispatch-Schnittstellenimplementierung von Common Language Runtime verwendet wird, um duale oder Dispatch-Schnittstellen für COM verfügbar zu machen. |
|
Gibt an, dass die Daten in den Aufrufer gemarshallt werden sollen. Kann zum Festlegen von Attributen für Parameter verwendet werden. |
|
Bestimmt, wie eine verwaltete Schnittstelle für COM-Clients verfügbar gemacht wird (Dual, abgeleitet von IUnknown oder nur IDispatch). Dieses Attribut kann von COM-Interop-Tools zugewiesen werden. |
|
Zeigt an, dass für eine nicht verwaltete Methodensignatur ein LCID-Parameter erwartet wird. Dieses Attribut kann von COM-Interop-Tools zugewiesen werden. |
|
Bestimmt, wie die Daten in Feldern oder Parametern zwischen verwaltetem und nicht verwaltetem Code gemarshallt werden. Dieses Attribut ist stets optional, weil jeder Datentyp ein standardmäßiges Marshallverhalten aufweist. Dieses Attribut kann von COM-Interop-Tools zugewiesen werden. |
|
Gibt an, dass ein Parameter optional ist. Dieses Attribut kann von COM-Interop-Tools zugewiesen werden. |
|
Gibt an, dass die Daten in einem Feld oder Parameter von einem aufgerufenen Objekt zurück an dessen Aufrufer gemarshallt werden sollen. |
|
Unterdrückt die Transformation einer HRESULT- oder retval-Signatur, die normalerweise während Aufrufen zur Interoperation durchgeführt wird. Das Attribut wirkt sich sowohl beim Marshallen als auch beim Exportieren der Typbibliothek aus. Dieses Attribut kann von COM-Interop-Tools zugewiesen werden. |
|
Bestimmt die ProgID einer .NET Framework-Klasse. Kann zum Festlegen von Attributen für Klassen verwendet werden. |
|
Steuert das physische Layout der Felder einer Klasse. Dieses Attribut kann von COM-Interop-Tools zugewiesen werden. |
Attribute des Konvertierungstools
In der folgenden Tabelle werden Attribute beschrieben, die COM-Interop-Tools beim Konvertierungsprozess anwenden. Diese Attribute können nicht während der Entwurfszeit zugewiesen werden.
Attribut |
Beschreibung |
---|---|
Bestimmt den COM-Alias für einen Parameter oder Feldtyp. Kann auf Attributparameter, Felder oder Rückgabewerte angewendet werden. |
|
Gibt an, dass Klassen- oder Schnittstelleninformationen beim Import aus einer Typbibliothek in eine Assembly verloren gegangen sind. |
|
Bezeichnet die Quellschnittstelle und die Klasse, die die Methoden der Ereignisschnittstelle implementiert. |
|
Gibt an, dass die Assembly ursprünglich aus einer COM-Typbibliothek importiert wurde. Dieses Attribut enthält die Typbibliotheksdefinition der ursprünglichen Typbibliothek. |
|
Enthält die FUNCFLAGS, die ursprünglich für diese Funktion aus der COM-Typbibliothek importiert wurden. |
|
Enthält die TYPEFLAGS, die ursprünglich für diesen Typ aus der COM-Typbibliothek importiert wurden. |
|
Enthält die VARFLAGS, die ursprünglich für diese Variable aus der COM-Typbibliothek importiert wurden. |
Siehe auch
Konzepte
Verfügbarmachen von .NET Framework-Komponenten in COM
Qualifizieren von .NET-Typen für die Interoperation
Verpacken einer Assembly für COM
Referenz
System.Runtime.InteropServices