Freigeben über


Anwenden von Interop-Attributen

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.

Siehe auch