Sdílet prostřednictvím


Použití atributů vzájemné spolupráce

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

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 Design-Time

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

Vlastnost 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í coclass, která byla importována z knihovny typů.

Nástroje COM interoperabilita 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 COM interoperabilita 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 COM interop 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 se uživatelsky napsaný kód mohl vykonat 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 přiřazení rozhraní COM (DISPID) metody nebo pole. Tento atribut obsahuje DISPID pro metodu, pole nebo vlastnost, které popisuje.

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

Nástroje COM interop 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 COM interop mohou tento atribut použít.
IDispatchImplAttribute Označuje, které rozhraní IDispatch implementace používá common language runtime při zpřístupnění duálních rozhraní a dispinterface modelu COM.
InAttribute Označuje, že data by měla být připravena pro volajícího. Lze použít k atributům parametrů.
InterfaceTypeAttribute Řídí, jak je spravované rozhraní vystaveno klientům COM (duální, pouze odvozené od IUnknown, nebo pouze IDispatch).

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

Nástroje COM interop 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 COM interop mohou tento atribut použít.
OptionalAttribute Označuje, že parametr je volitelný.

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

Nástroje COM interop 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 COM interop mohou tento atribut použít.

atributy Conversion-Tool

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

Vlastnost 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 importovány původně pro tento typ z knihovny typů COM.
TypeLibVarAttribute Obsahuje VARFLAGS , které byly původně importovány pro tuto proměnnou z knihovny typů modelu COM.

Viz také