Megosztás a következőn keresztül:


Interop attribútumok alkalmazása

A System.Runtime.InteropServices névtér az interop-specifikus attribútumok három kategóriáját tartalmazza: a tervezéskor ön által alkalmazott attribútumokat, a COM-interop eszközök és API-k által az átalakítási folyamat során alkalmazottakat, valamint azOkat, amelyeket Ön vagy a COM interop alkalmaz.

Ha nem ismeri az attribútumok felügyelt kódra való alkalmazásának feladatát, olvassa el a Metaadatok kiterjesztése attribútumokkal című témakört. A többi egyéni attribútumhoz hasonlóan interopspecifikus attribútumokat is alkalmazhat típusokra, metódusokra, tulajdonságokra, paraméterekre, mezőkre és más tagokra.

Tervezési idő attribútumai

A COM interop-eszközök és API-k által végrehajtott átalakítási folyamat eredményét tervezési idő attribútumok használatával módosíthatja. Az alábbi táblázat a felügyelt forráskódra alkalmazható attribútumokat ismerteti. A COM interop-eszközök esetenként a táblázatban leírt attribútumokat is alkalmazhatják.

Attribútum Leírás
AutomationProxyAttribute Megadja, hogy a típust az Automation-rendezővel vagy egy egyéni proxyval és csonktal kell-e elrendezni.
ClassInterfaceAttribute Az osztályhoz létrehozott felület típusát szabályozza.
CoClassAttribute A típustárból importált eredeti coclass CLSID azonosítóját azonosítja.

A COM interop-eszközök általában ezt az attribútumot alkalmazzák.
ComImportAttribute Azt jelzi, hogy a társosztály- vagy felületdefiníció egy COM-típustárból lett importálva. A futtatókörnyezet ezzel a jelző használatával tudja, hogyan aktiválhatja és adhatja meg a típust. Ez az attribútum megtiltja, hogy a típus vissza legyen exportálva egy típustárba.

A COM interop-eszközök általában ezt az attribútumot alkalmazzák.
ComRegisterFunctionAttribute Azt jelzi, hogy egy metódust kell meghívni, amikor a szerelvény regisztrálva van a COM-ból való használatra, hogy a felhasználó által írt kód végrehajtható legyen a regisztrációs folyamat során.
ComSourceInterfacesAttribute Azonosítja az osztály eseményforrásait.

A COM interop-eszközök alkalmazhatják ezt az attribútumot.
ComUnregisterFunctionAttribute Azt jelzi, hogy egy metódust kell meghívni, amikor a szerelvény nincs regisztrálva a COM-ból, hogy a felhasználó által írt kód végrehajtható legyen a folyamat során.
ComVisibleAttribute A COM számára láthatatlanná teszi a típusokat, ha az attribútum értéke hamis. Ez az attribútum alkalmazható egy adott típusra vagy egy teljes szerelvényre a COM láthatóságának szabályozása érdekében. Alapértelmezés szerint minden felügyelt, nyilvános típus látható; az attribútum nem szükséges ahhoz, hogy láthatóvá tegye őket.
DispIdAttribute Egy metódus vagy mező COM-küldési azonosítóját (DISPID) adja meg. Ez az attribútum az általa leírt metódushoz, mezőhöz vagy tulajdonsághoz tartozó DISPID-t tartalmazza.

A COM interop-eszközök alkalmazhatják ezt az attribútumot.
ComDefaultInterfaceAttribute A .NET-ben implementált COM-osztály alapértelmezett felületét jelzi.

A COM interop-eszközök alkalmazhatják ezt az attribútumot.
FieldOffsetAttribute A StructLayoutAttribute használatakor az osztályon belüli egyes mezők fizikai helyzetét jelzi, az LayoutKind pedig Explicit értékre van állítva.
GuidAttribute Egy osztály, felület vagy egy teljes típustár globálisan egyedi azonosítóját (GUID) adja meg. Az attribútumnak átadott sztringnek olyan formátumnak kell lennie, amely elfogadható konstruktor argumentum a System.Guid típushoz.

A COM interop-eszközök alkalmazhatják ezt az attribútumot.
IDispatchImplAttribute Azt jelzi, hogy melyik IDispatch-felület implementációját használja a közös nyelvi futtatókörnyezet a kettős felületek és a dispinterfaces COM-nak való felfedésekor.
InAttribute Azt jelzi, hogy az adatokat be kell rendezni a hívóhoz. Paraméterek attribútumához használható.
InterfaceTypeAttribute Szabályozza, hogy a felügyelt felület hogyan legyen elérhető a COM-ügyfelek számára (csak kettős, IUnknown-származtatott vagy IDispatch).

A COM interop-eszközök alkalmazhatják ezt az attribútumot.
LCIDConversionAttribute Azt jelzi, hogy egy nem felügyelt metódus aláírása LCID paramétert vár.

A COM interop-eszközök alkalmazhatják ezt az attribútumot.
MarshalAsAttribute Azt jelzi, hogy a mezőkben vagy paraméterekben lévő adatok hogyan legyenek rendezve a felügyelt és a nem felügyelt kód között. Az attribútum mindig választható, mert minden adattípus alapértelmezett rendezési viselkedést ad.

A COM interop-eszközök alkalmazhatják ezt az attribútumot.
OptionalAttribute Azt jelzi, hogy egy paraméter nem kötelező.

A COM interop-eszközök alkalmazhatják ezt az attribútumot.
OutAttribute Azt jelzi, hogy egy mező vagy paraméter adatait vissza kell rendezni egy hívott objektumból a hívóhoz.
PreserveSigAttribute Letiltja a HRESULT vagy az újrapróbálkozás aláírásának átalakítását, amely általában az együttműködési hívások során történik. Az attribútum hatással van a rendezésre és a típustár exportálására is.

A COM interop-eszközök alkalmazhatják ezt az attribútumot.
ProgIdAttribute Egy .NET-osztály ProgID azonosítóját adja meg. Osztályokat attribútumként használhat.
StructLayoutAttribute Az osztály mezőinek fizikai elrendezését szabályozza.

A COM interop-eszközök alkalmazhatják ezt az attribútumot.

Konverziós eszköz attribútumai

Az alábbi táblázat azokat az attribútumokat ismerteti, amelyeket a COM interop-eszközök az átalakítási folyamat során alkalmaznak. Ezeket az attribútumokat a tervezéskor nem alkalmazza.

Attribútum Leírás
ComAliasNameAttribute Egy paraméter vagy mezőtípus COM-aliasát jelzi. Paraméterek, mezők vagy visszaadott értékek attribútumára használható.
ComConversionLossAttribute Azt jelzi, hogy egy osztály vagy felület adatai elvesztek, amikor egy típustárból egy szerelvénybe importálták.
ComEventInterfaceAttribute Azonosítja a forrásfelületet és az eseményillesztő metódusait implementáló osztályt.
ImportedFromTypeLibAttribute Azt jelzi, hogy a szerelvény eredetileg egy COM-típusú kódtárból lett importálva. Ez az attribútum az eredeti típustár típustár-definícióját tartalmazza.
TypeLibFuncAttribute A függvényhez eredetileg a COM-típustárból importált FUNCFLAGS-t tartalmazza.
TypeLibTypeAttribute Az ehhez a típushoz eredetileg importált TYPEFLAGS-t tartalmazza a COM-típustárból.
TypeLibVarAttribute A VÁLTOZÓhoz eredetileg a COM típusú kódtárból importált VARFLAGS-t tartalmazza.

Lásd még