Interop-kenmerken toepassen

De System.Runtime.InteropServices naamruimte biedt drie categorieën interop-specifieke kenmerken: die door u tijdens het ontwerp worden toegepast, die worden toegepast door COM-hulpprogramma's en API's tijdens het conversieproces, en die door u of COM-interoperabiliteit worden toegepast.

Als u niet bekend bent met de taak om kenmerken toe te passen op beheerde code, raadpleegt u Het uitbreiden van metagegevens met behulp van kenmerken. Net als andere aangepaste kenmerken kunt u interopspecifieke kenmerken toepassen op typen, methoden, eigenschappen, parameters, velden en andere leden.

Ontwerptijdkenmerken

U kunt het resultaat van het conversieproces dat wordt uitgevoerd door COM-hulpprogramma's en API's aanpassen met behulp van ontwerptijdkenmerken. In de volgende tabel worden de kenmerken beschreven die u op uw beheerde broncode kunt toepassen. COM-interoperabiliteitshulpprogramma's kunnen soms ook de kenmerken toepassen die in deze tabel worden beschreven.

Kenmerk Beschrijving
AutomationProxyAttribute Hiermee geeft u op of het type moet worden marshalled met behulp van de Automation Marshaller of een aangepaste proxy en stub.
ClassInterfaceAttribute Hiermee bepaalt u het type interface dat voor een klasse is gegenereerd.
CoClassAttribute Identificeert de CLSID van de oorspronkelijke coklasse die is geïmporteerd uit een typebibliotheek.

Com-interoperabiliteitshulpprogramma's passen dit kenmerk doorgaans toe.
ComImportAttribute Geeft aan dat een coklasse- of interfacedefinitie is geïmporteerd uit een COM-typebibliotheek. De runtime gebruikt deze vlag om te weten hoe u het type activeert en marshalt. Dit kenmerk verbiedt het type om terug te worden geëxporteerd naar een typebibliotheek.

Com-interoperabiliteitshulpprogramma's passen dit kenmerk doorgaans toe.
ComRegisterFunctionAttribute Geeft aan dat een methode moet worden aangeroepen wanneer de assembly is geregistreerd voor gebruik vanuit COM, zodat door de gebruiker geschreven code kan worden uitgevoerd tijdens het registratieproces.
ComSourceInterfacesAttribute Identificeert interfaces die bronnen van gebeurtenissen voor de klasse zijn.

COM-hulpprogramma's voor interoperabiliteit kunnen dit kenmerk toepassen.
ComUnregisterFunctionAttribute Geeft aan dat een methode moet worden aangeroepen wanneer de assembly niet is geregistreerd bij COM, zodat door de gebruiker geschreven code tijdens het proces kan worden uitgevoerd.
ComVisibleAttribute Geeft typen onzichtbaar weer voor COM wanneer de kenmerkwaarde gelijk is aan onwaar. Dit kenmerk kan worden toegepast op een afzonderlijk type of op een hele assembly om COM-zichtbaarheid te beheren. Standaard zijn alle beheerde, openbare typen zichtbaar; het kenmerk is niet nodig om ze zichtbaar te maken.
DispIdAttribute Hiermee geeft u de COM dispatch identifier (DISPID) van een methode of veld. Dit kenmerk bevat de DISPID voor de methode, het veld of de eigenschap die wordt beschreven.

COM-hulpprogramma's voor interoperabiliteit kunnen dit kenmerk toepassen.
ComDefaultInterfaceAttribute Geeft de standaardinterface aan voor een COM-klasse die is geïmplementeerd in .NET.

COM-hulpprogramma's voor interoperabiliteit kunnen dit kenmerk toepassen.
FieldOffsetAttribute Geeft de fysieke positie van elk veld binnen een klasse aan wanneer deze wordt gebruikt met de StructLayoutAttribute en de LayoutKind is ingesteld op Expliciet.
GuidAttribute Hiermee geeft u de GUID (Globally Unique Identifier) van een klasse, interface of een volledige typebibliotheek op. De tekenreeks die aan het kenmerk wordt doorgegeven, moet een indeling zijn die een acceptabel constructorargument is voor het type System.Guid.

COM-hulpprogramma's voor interoperabiliteit kunnen dit kenmerk toepassen.
IDispatchImplAttribute Geeft aan welke IDispatch-interface-implementatie de algemene taalruntime gebruikt bij het blootstellen van dubbele interfaces en dispinterfaces aan COM.
InAttribute Geeft aan dat gegevens moeten worden ge marshalld in de aanroeper. Kan worden gebruikt om parameters toe te schrijven.
InterfaceTypeAttribute Hiermee bepaalt u hoe een beheerde interface wordt blootgesteld aan COM-clients (alleen Dual, IUnknown-afgeleide of IDispatch).

COM-hulpprogramma's voor interoperabiliteit kunnen dit kenmerk toepassen.
LCIDConversionAttribute Geeft aan dat een niet-beheerde methodehandtekening een LCID-parameter verwacht.

COM-hulpprogramma's voor interoperabiliteit kunnen dit kenmerk toepassen.
MarshalAsAttribute Geeft aan hoe de gegevens in velden of parameters moeten worden ge marshalld tussen beheerde en onbeheerde code. Het kenmerk is altijd optioneel omdat elk gegevenstype standaard marshallinggedrag heeft.

COM-hulpprogramma's voor interoperabiliteit kunnen dit kenmerk toepassen.
OptionalAttribute Geeft aan dat een parameter optioneel is.

COM-hulpprogramma's voor interoperabiliteit kunnen dit kenmerk toepassen.
OutAttribute Geeft aan dat de gegevens in een veld of parameter moeten worden ge marshalld van een aangeroepen object terug naar de aanroeper.
PreserveSigAttribute Onderdrukt de HRESULT- of hervalhandtekeningstransformatie die normaal gesproken plaatsvindt tijdens interoperation-aanroepen. Het kenmerk is van invloed op marshalling en typebibliotheek exporteren.

COM-hulpprogramma's voor interoperabiliteit kunnen dit kenmerk toepassen.
ProgIdAttribute Hiermee geeft u de ProgID van een .NET-klasse. Kan worden gebruikt voor kenmerkklassen.
StructLayoutAttribute Hiermee bepaalt u de fysieke indeling van de velden van een klasse.

COM-hulpprogramma's voor interoperabiliteit kunnen dit kenmerk toepassen.

Kenmerken van het conversieprogramma

In de volgende tabel worden kenmerken beschreven die com-interoperabiliteitshulpprogramma's toepassen tijdens het conversieproces. U past deze kenmerken niet toe op het ontwerp.

Kenmerk Beschrijving
ComAliasNameAttribute Geeft de COM-alias voor een parameter of veldtype aan. Kan worden gebruikt om parameters, velden of retourwaarden toe te wijzen.
ComConversionLossAttribute Geeft aan dat informatie over een klasse of interface verloren is gegaan bij het importeren van een typebibliotheek in een assembly.
ComEventInterfaceAttribute Identificeert de broninterface en de klasse die de methoden van de gebeurtenisinterface implementeert.
ImportedFromTypeLibAttribute Geeft aan dat de assembly oorspronkelijk is geïmporteerd uit een COM-typebibliotheek. Dit kenmerk bevat de typebibliotheekdefinitie van de oorspronkelijke typebibliotheek.
TypeLibFuncAttribute Bevat de FUNCFLAGS die oorspronkelijk zijn geïmporteerd voor deze functie uit de COM-typebibliotheek.
TypeLibTypeAttribute Bevat de TYPEFLAGS die oorspronkelijk zijn geïmporteerd voor dit type uit de COM-typebibliotheek.
TypeLibVarAttribute Bevat de VARFLAGS die oorspronkelijk zijn geïmporteerd voor deze variabele uit de COM-typebibliotheek.

Zie ook