Použití atributů spolupráce

System.Runtime.InteropServices Obor názvů poskytuje tři kategorie atributů specifických pro interoperabilitu: ty, které jste použili v době návrhu, ty, které používají nástroje a rozhraní API modelu COM během procesu převodu, a ty použité buď vy, nebo zprostředkovatele komunikace modelu COM.

Pokud neznáte úlohu použití atributů na spravovaný kód, přečtěte si téma Rozšíření metadat pomocí atributů. Stejně jako jiné vlastní atributy můžete použít atributy specifické pro interoperabilitu pro typy, metody, vlastnosti, parametry, pole a další členy.

Atributy návrhu a času

Výsledek procesu převodu prováděného nástroji a rozhraními API zprostředkovatele komunikace modelu COM můžete upravit pomocí atributů doby návrhu. Následující tabulka popisuje atributy, které můžete použít u spravovaného zdrojového kódu. Nástroje zprostředkovatele komunikace modelu COM můžou někdy také používat atributy popsané v této tabulce.

Atribut Popis
AutomationProxyAttribute Určuje, jestli má být typ zařazován pomocí zařazovače Automation nebo vlastního proxy serveru a zástupných procedur.
ClassInterfaceAttribute Určuje typ rozhraní vygenerovaného pro třídu.
CoClassAttribute Identifikuje CLSID původní třídy coclass importované z knihovny typů.

Nástroje zprostředkovatele komunikace modelu COM obvykle používají tento atribut.
ComImportAttribute Označuje, že definice třídy coclass nebo rozhraní byla importována z knihovny typů modelu COM. Modul runtime pomocí tohoto příznaku zjistí, jak tento typ aktivovat a zařadí. Tento atribut zakáže export typu zpět do knihovny typů.

Nástroje zprostředkovatele komunikace modelu COM obvykle používají tento atribut.
ComRegisterFunctionAttribute Označuje, že metoda by měla být volána při registraci sestavení pro použití z modelu COM, aby bylo možné spustit uživatelem napsaný kód během procesu registrace.
ComSourceInterfacesAttribute Identifikuje rozhraní, která jsou zdroji událostí pro třídu.

Nástroje zprostředkovatele komunikace modelu COM mohou tento atribut použít.
ComUnregisterFunctionAttribute Označuje, že metoda by měla být volána při zrušení registrace sestavení z modelu COM, aby uživatel-napsaný kód mohl provést během procesu.
ComVisibleAttribute Vykreslí typy neviditelné modelu COM, pokud hodnota atributu se rovná false. Tento atribut lze použít na jednotlivé typy nebo na celé sestavení, aby bylo možné řídit viditelnost modelu COM. Ve výchozím nastavení jsou viditelné všechny spravované veřejné typy; atribut není potřeba k tomu, aby byly viditelné.
DispIdAttribute Určuje identifikátor odeslání modelu COM (DISPID) metody nebo pole. Tento atribut obsahuje DISPID pro metodu, pole nebo vlastnost, které popisuje.

Nástroje zprostředkovatele komunikace modelu COM mohou tento atribut použít.
ComDefaultInterfaceAttribute Označuje výchozí rozhraní třídy COM implementované v .NET.

Nástroje zprostředkovatele komunikace modelu COM mohou tento atribut použít.
FieldOffsetAttribute Určuje fyzickou pozici každého pole v rámci třídy při použití s StructLayoutAttribute a LayoutKind je nastavena na Explicit.
GuidAttribute Určuje globálně jedinečný identifikátor (GUID) třídy, rozhraní nebo celé knihovny typů. Řetězec předaný atributu musí být formát, který je přijatelným argumentem konstruktoru pro typ System.Guid.

Nástroje zprostředkovatele komunikace modelu COM mohou tento atribut použít.
IDispatchImplAttribute Označuje, které rozhraní IDispatch implementace common language runtime používá při zveřejnění duálních rozhraní a dispinterfaces modelu COM.
InAttribute Označuje, že data by měla být zařazována do volajícího. Lze použít k atributům parametrů.
InterfaceTypeAttribute Řídí, jak je spravované rozhraní vystaveno klientům MODELU COM (duální, odvozené IUnknown nebo pouze IDispatch).

Nástroje zprostředkovatele komunikace modelu COM mohou tento atribut použít.
LCIDConversionAttribute Označuje, že nespravovaný podpis metody očekává parametr LCID.

Nástroje zprostředkovatele komunikace modelu COM mohou tento atribut použít.
MarshalAsAttribute Určuje, jak se mají data v polích nebo parametrech zařaďovat mezi spravovaným a nespravovaným kódem. Atribut je vždy volitelný, protože každý datový typ má výchozí chování při zařazování.

Nástroje zprostředkovatele komunikace modelu COM mohou tento atribut použít.
OptionalAttribute Označuje, že parametr je volitelný.

Nástroje zprostředkovatele komunikace modelu COM mohou tento atribut použít.
OutAttribute Označuje, že data v poli nebo parametru musí být zařazována z volaného objektu zpět do volajícího.
PreserveSigAttribute Potlačí transformaci HRESULT nebo retval signaturu, která se obvykle provádí během interoperačních volání. Atribut má vliv na zařazování a export knihovny typů.

Nástroje zprostředkovatele komunikace modelu COM mohou tento atribut použít.
ProgIdAttribute Určuje Identifikátor ProgID třídy .NET. Lze použít k třídám atributů.
StructLayoutAttribute Řídí fyzické rozložení polí třídy.

Nástroje zprostředkovatele komunikace modelu COM mohou tento atribut použít.

Atributy nástroje převodu

Následující tabulka popisuje atributy, které nástroje zprostředkovatele komunikace modelu COM používají během procesu převodu. Tyto atributy v době návrhu nepoužijete.

Atribut Popis
ComAliasNameAttribute Označuje alias modelu COM pro parametr nebo typ pole. Lze použít k atributu parametrů, polí nebo návratových hodnot.
ComConversionLossAttribute Označuje, že při importu z knihovny typů do sestavení došlo ke ztrátě informací o třídě nebo rozhraní.
ComEventInterfaceAttribute Identifikuje zdrojové rozhraní a třídu, která implementuje metody rozhraní událostí.
ImportedFromTypeLibAttribute Označuje, že sestavení bylo původně importováno z knihovny typů modelu COM. Tento atribut obsahuje definici knihovny typů původní knihovny typů.
TypeLibFuncAttribute Obsahuje FUNCFLAGS, které byly původně importovány pro tuto funkci z knihovny typů modelu COM.
TypeLibTypeAttribute Obsahuje TYPEFLAGS, které byly původně importovány pro tento typ z knihovny typů MODELU COM.
TypeLibVarAttribute Obsahuje VARFLAGS, které byly původně importovány pro tuto proměnnou z knihovny typů modelu COM.

Viz také