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