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