Tillämpa Interop-attribut

Namnområdet System.Runtime.InteropServices innehåller tre kategorier av interop-specifika attribut: de som tillämpas av dig vid designtillfället, de som tillämpas av COM-interop-verktyg och API:er under konverteringsprocessen och de som tillämpas antingen av dig eller COM-interop.

Om du inte känner till uppgiften att tillämpa attribut på hanterad kod kan du läsa Utöka metadata med hjälp av attribut. Precis som andra anpassade attribut kan du använda interopspecifika attribut för typer, metoder, egenskaper, parametrar, fält och andra medlemmar.

Designtidsattribut

Du kan justera resultatet av konverteringsprocessen som utförs av COM-interopverktyg och API:er med hjälp av designtidsattribut. I följande tabell beskrivs de attribut som du kan använda för din hanterade källkod. COM-interopverktyg kan ibland också använda attributen som beskrivs i den här tabellen.

Attribut beskrivning
AutomationProxyAttribute Anger om typen ska ordnas med hjälp av Automation-marshaller eller en anpassad proxy och stub.
ClassInterfaceAttribute Styr vilken typ av gränssnitt som genereras för en klass.
CoClassAttribute Identifierar CLSID för den ursprungliga samklassen som importerats från ett typbibliotek.

COM-interopverktyg tillämpar vanligtvis det här attributet.
ComImportAttribute Anger att en samklass eller gränssnittsdefinition importerades från ett COM-typbibliotek. Körningen använder den här flaggan för att veta hur du aktiverar och konverterar typen. Det här attributet förbjuder att typen exporteras tillbaka till ett typbibliotek.

COM-interopverktyg tillämpar vanligtvis det här attributet.
ComRegisterFunctionAttribute Anger att en metod ska anropas när sammansättningen registreras för användning från COM, så att användarskriven kod kan köras under registreringsprocessen.
ComSourceInterfacesAttribute Identifierar gränssnitt som är källor till händelser för klassen.

COM-interopverktyg kan använda det här attributet.
ComUnregisterFunctionAttribute Anger att en metod ska anropas när sammansättningen avregistreras från COM, så att användarskriven kod kan köras under processen.
ComVisibleAttribute Renderar typer som är osynliga för COM när attributvärdet är lika med false. Det här attributet kan tillämpas på en enskild typ eller på en hel sammansättning för att styra COM-synligheten. Som standard är alla hanterade, offentliga typer synliga. attributet behövs inte för att göra dem synliga.
DispIdAttribute Anger COM-sändningsidentifieraren (DISPID) för en metod eller ett fält. Det här attributet innehåller DISPID för den metod, det fält eller den egenskap som beskrivs.

COM-interopverktyg kan använda det här attributet.
ComDefaultInterfaceAttribute Anger standardgränssnittet för en COM-klass som implementerats i .NET.

COM-interopverktyg kan använda det här attributet.
FieldOffsetAttribute Anger den fysiska positionen för varje fält i en klass när det används med StructLayoutAttribute, och LayoutKind är inställd på Explicit.
GuidAttribute Anger den globalt unika identifieraren (GUID) för en klass, ett gränssnitt eller ett helt typbibliotek. Strängen som skickas till attributet måste vara ett format som är ett acceptabelt konstruktorargument för typen System.Guid.

COM-interopverktyg kan använda det här attributet.
IDispatchImplAttribute Anger vilken IDispatch-gränssnittsimplementering som den vanliga språkkörningen använder när du exponerar dubbla gränssnitt och dispinterfaces för COM.
InAttribute Anger att data ska kopplas till anroparen. Kan användas för att attributparametrar.
InterfaceTypeAttribute Styr hur ett hanterat gränssnitt exponeras för COM-klienter (endast Dual, IUnknown-derived eller IDispatch).

COM-interopverktyg kan använda det här attributet.
LCIDConversionAttribute Anger att en ohanterad metodsignatur förväntar sig en LCID-parameter.

COM-interopverktyg kan använda det här attributet.
MarshalAsAttribute Anger hur data i fält eller parametrar ska ordnas mellan hanterad och ohanterad kod. Attributet är alltid valfritt eftersom varje datatyp har standardbeteende för marshalling.

COM-interopverktyg kan använda det här attributet.
OptionalAttribute Anger att en parameter är valfri.

COM-interopverktyg kan använda det här attributet.
OutAttribute Anger att data i ett fält eller en parameter måste kopplas från ett anropat objekt tillbaka till anroparen.
PreserveSigAttribute Undertrycker den HRESULT- eller omvalssignaturtransformering som normalt sker under interoperationsanrop. Attributet påverkar både marshalling och typbiblioteksexportering.

COM-interopverktyg kan använda det här attributet.
ProgIdAttribute Anger ProgID för en .NET-klass. Kan användas för att attributklasser.
StructLayoutAttribute Styr den fysiska layouten för fälten i en klass.

COM-interopverktyg kan använda det här attributet.

Attribut för konverteringsverktyg

I följande tabell beskrivs attribut som COM-interop-verktyg använder under konverteringsprocessen. Du använder inte dessa attribut vid designtillfället.

Attribut beskrivning
ComAliasNameAttribute Anger COM-aliaset för en parameter eller fälttyp. Kan användas för att attributparametrar, fält eller returvärden.
ComConversionLossAttribute Anger att information om en klass eller ett gränssnitt gick förlorad när den importerades från ett typbibliotek till en sammansättning.
ComEventInterfaceAttribute Identifierar källgränssnittet och klassen som implementerar metoderna i händelsegränssnittet.
ImportedFromTypeLibAttribute Anger att sammansättningen ursprungligen importerades från ett COM-typbibliotek. Det här attributet innehåller typbiblioteksdefinitionen för det ursprungliga typbiblioteket.
TypeLibFuncAttribute Innehåller FUNCFLAGS som ursprungligen importerades för den här funktionen från COM-typbiblioteket.
TypeLibTypeAttribute Innehåller TYPEFLAGS som ursprungligen importerades för den här typen från COM-typbiblioteket.
TypeLibVarAttribute Innehåller VARFLAGS som ursprungligen importerades för den här variabeln från COM-typbiblioteket.

Se även