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. |