Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der System.Runtime.InteropServices-Namespace stellt drei Kategorien von interopspezifischen Attributen bereit: die von Ihnen während der Entwurfsphase angewendet werden, die von COM-Interop-Tools und -APIs während des Konvertierungsprozesses angewendet werden und die entweder von Ihnen oder durch COM-Interoperabilität angewendet werden.
Wenn Sie mit der Aufgabe zum Anwenden von Attributen auf verwalteten Code nicht vertraut sind, lesen Sie "Erweitern von Metadaten mithilfe von Attributen". Wie andere benutzerdefinierte Attribute können Sie interopspezifische Attribute auf Typen, Methoden, Eigenschaften, Parameter, Felder und andere Member anwenden.
Entwurfszeitattribute
Sie können das Ergebnis des Konvertierungsprozesses anpassen, der von COM-Interoptools und -APIs mithilfe von Entwurfszeitattributen ausgeführt wird. In der folgenden Tabelle werden die Attribute beschrieben, die Sie auf Ihren verwalteten Quellcode anwenden können. Com-Interoptools können gelegentlich auch die in dieser Tabelle beschriebenen Attribute anwenden.
| Merkmal | BESCHREIBUNG |
|---|---|
| AutomationProxyAttribute | Gibt an, ob der Typ mithilfe des Automation-Marshallers oder eines benutzerdefinierten Proxys und Stubs gemarshallt werden soll. |
| ClassInterfaceAttribute | Steuert den Typ der Schnittstelle, die für eine Klasse generiert wird. |
| CoClassAttribute | Identifiziert den Klassenbezeichner einer aus einer Typbibliothek importierten Co-Klasse. Com-Interoptools wenden dieses Attribut in der Regel an. |
| ComImportAttribute | Gibt an, dass eine Coclass- oder Schnittstellendefinition aus einer COM-Typbibliothek importiert wurde. Die Common Language Runtime verwendet dieses Flag, um zu wissen, wie der Typ aktiviert und gemarshallt wird. Dieses Attribut verhindert, dass der Typ wieder in eine Typbibliothek exportiert wird. Com-Interoptools wenden dieses Attribut in der Regel an. |
| ComRegisterFunctionAttribute | Gibt an, dass eine Methode aufgerufen werden soll, wenn die Assembly für die Verwendung von COM registriert wird, damit benutzergeschriebener Code während des Registrierungsprozesses ausgeführt werden kann. |
| ComSourceInterfacesAttribute | Identifiziert Schnittstellen, die Quellen von Ereignissen für die Klasse sind. COM-Interoptools können dieses Attribut anwenden. |
| ComUnregisterFunctionAttribute | Gibt an, dass eine Methode aufgerufen werden soll, wenn die Registrierung der Assembly von COM aufgehoben wird, damit vom Benutzer geschriebener Code während des Prozesses ausgeführt werden kann. |
| ComVisibleAttribute | Rendert Typen, die für COM unsichtbar sind, wenn der Attributwert "false" ist. Dieses Attribut kann auf einen einzelnen Typ oder auf eine gesamte Assembly angewendet werden, um die COM-Sichtbarkeit zu steuern. Standardmäßig sind alle verwalteten öffentlichen Typen sichtbar; Das Attribut ist nicht erforderlich, um sie sichtbar zu machen. |
| DispIdAttribute | Gibt den COM-Verteilerbezeichner (DISPID) einer Methode oder eines Felds an. Dieses Attribut enthält die DISPID für die beschriebene Methode, das Feld oder die Eigenschaft. COM-Interoptools können dieses Attribut anwenden. |
| ComDefaultInterfaceAttribute | Gibt die Standardschnittstelle für eine in .NET implementierte COM-Klasse an. COM-Interoptools können dieses Attribut anwenden. |
| FieldOffsetAttribute | Gibt die physische Position jedes Felds innerhalb einer Klasse an, wenn es mit StructLayoutAttribute verwendet wird, und layoutKind wird auf "Explicit" festgelegt. |
| GuidAttribute | Gibt die GUID (Globally Unique Identifier) einer Klasse, Schnittstelle oder einer gesamten Typbibliothek an. Die an das Attribut übergebene Zeichenfolge muss ein Format sein, das ein akzeptables Konstruktorargument für den Typ "System.Guid" ist. COM-Interoptools können dieses Attribut anwenden. |
| IDispatchImplAttribute | Gibt an, welche IDispatch-Schnittstellenimplementierung die Common Language Runtime verwendet, wenn sie duale Schnittstellen und Disp-Schnittstellen für COM verfügbar macht. |
| InAttribute | Gibt an, dass Daten an den Aufrufer übertragen werden sollen. Kann zur Zuordnung von Parametern verwendet werden. |
| InterfaceTypeAttribute | Steuert, wie eine verwaltete Schnittstelle den COM-Clients zur Verfügung gestellt wird (Dual, von IUnknown abgeleitet oder nur IDispatch). COM-Interoptools können dieses Attribut anwenden. |
| LCIDConversionAttribute | Gibt an, dass eine nicht verwaltete Methodensignatur einen LCID-Parameter erwartet. COM-Interoptools können dieses Attribut anwenden. |
| MarshalAsAttribute | Gibt an, wie die Daten in Feldern oder Parametern zwischen verwaltetem und nicht verwaltetem Code gemarshallt werden sollen. Das Attribut ist immer optional, da jeder Datentyp standardmäßiges Marshallingverhalten aufweist. COM-Interoptools können dieses Attribut anwenden. |
| OptionalAttribute | Gibt an, dass ein Parameter optional ist. COM-Interoptools können dieses Attribut anwenden. |
| OutAttribute | Gibt an, dass die Daten in einem Feld oder Parameter von einem aufgerufenen Objekt zurück zum Aufrufer übertragen werden müssen. |
| PreserveSigAttribute | Unterdrückt die HRESULT- oder Retval-Signaturtransformation, die normalerweise bei Interoperationsaufrufen stattfindet. Das Attribut wirkt sich auf das Marshalling und das Exportieren der Typbibliothek aus. COM-Interoptools können dieses Attribut anwenden. |
| ProgIdAttribute | Gibt die ProgID einer .NET-Klasse an. Kann für Attributklassen verwendet werden. |
| StructLayoutAttribute | Steuert das physische Layout der Felder einer Klasse. COM-Interoptools können dieses Attribut anwenden. |
Attribute des Konvertierungstools
In der folgenden Tabelle werden Attribute beschrieben, die während des Konvertierungsprozesses von COM-Interoperabilitätstools angewendet werden. Wenden Sie diese Attribute während der Entwurfsphase nicht an?
| Merkmal | BESCHREIBUNG |
|---|---|
| ComAliasNameAttribute | Gibt den COM-Alias für einen Parameter oder Feldtyp an. Kann verwendet werden, um Parameter, Felder oder Rückgabewerte zu attributieren. |
| ComConversionLossAttribute | Gibt an, dass Informationen zu einer Klasse oder Schnittstelle verloren gingen, als sie aus einer Typbibliothek in eine Assembly importiert wurde. |
| ComEventInterfaceAttribute | Identifiziert die Quellschnittstelle und die Klasse, die die Methoden der Ereignisschnittstelle implementiert. |
| ImportedFromTypeLibAttribute | Gibt an, dass die Assembly ursprünglich aus einer COM-Typbibliothek importiert wurde. Dieses Attribut enthält die Typbibliotheksdefinition der ursprünglichen Typbibliothek. |
| TypeLibFuncAttribute | Enthält die FUNCFLAGS, die ursprünglich für diese Funktion aus der COM-Typbibliothek importiert wurden. |
| TypeLibTypeAttribute | Enthält die TYPEFLAGS , die ursprünglich für diesen Typ aus der COM-Typbibliothek importiert wurden. |
| TypeLibVarAttribute | Enthält die VARFLAGS , die ursprünglich für diese Variable aus der COM-Typbibliothek importiert wurden. |