Stosowanie atrybutów międzyoperacyjności

System.Runtime.InteropServices Przestrzeń nazw zawiera trzy kategorie atrybutów specyficznych dla międzyoperacyjności: zastosowane przez Użytkownika w czasie projektowania, stosowane przez narzędzia i interfejsy API międzyoperacyjności modelu COM podczas procesu konwersji, a te stosowane przez Użytkownika lub międzyoperacyjności MODELU COM.

Jeśli nie znasz zadania stosowania atrybutów do kodu zarządzanego, zobacz Rozszerzanie metadanych przy użyciu atrybutów. Podobnie jak inne atrybuty niestandardowe, można stosować atrybuty specyficzne dla międzyoperacyjnych do typów, metod, właściwości, parametrów, pól i innych elementów członkowskich.

Atrybuty czasu projektowania

Możesz dostosować wynik procesu konwersji wykonywanego przez narzędzia i interfejsy API międzyoperacyjności modelu COM przy użyciu atrybutów czasu projektowania. W poniższej tabeli opisano atrybuty, które można zastosować do zarządzanego kodu źródłowego. Narzędzia międzyoperacyjnych modelu COM mogą również stosować atrybuty opisane w tej tabeli.

Atrybut opis
AutomationProxyAttribute Określa, czy typ ma być marshalled przy użyciu marshaller usługi Automation, czy niestandardowego serwera proxy i wycinku.
ClassInterfaceAttribute Określa typ interfejsu wygenerowanego dla klasy.
CoClassAttribute Identyfikuje identyfikator CLSID oryginalnej coklasy importowanej z biblioteki typów.

Narzędzia międzyoperacowe modelu COM zwykle stosują ten atrybut.
ComImportAttribute Wskazuje, że coclass lub definicja interfejsu została zaimportowana z biblioteki typów COM. Środowisko uruchomieniowe używa tej flagi do poznania sposobu aktywowania i marshalingu typu. Ten atrybut uniemożliwia eksportowanie typu z powrotem do biblioteki typów.

Narzędzia międzyoperacowe modelu COM zwykle stosują ten atrybut.
ComRegisterFunctionAttribute Wskazuje, że należy wywołać metodę, gdy zestaw jest zarejestrowany do użycia z modelu COM, aby można było wykonać kod napisany przez użytkownika podczas procesu rejestracji.
ComSourceInterfacesAttribute Identyfikuje interfejsy, które są źródłami zdarzeń dla klasy.

Narzędzia międzyoperacowe modelu COM mogą stosować ten atrybut.
ComUnregisterFunctionAttribute Wskazuje, że metoda powinna być wywoływana, gdy zestaw jest wyrejestrowany z modelu COM, aby kod napisany przez użytkownika mógł zostać wykonany podczas procesu.
ComVisibleAttribute Renderuje typy niewidoczne dla modelu COM, gdy wartość atrybutu jest równa false. Ten atrybut można zastosować do pojedynczego typu lub całego zestawu w celu kontrolowania widoczności modelu COM. Domyślnie wszystkie zarządzane typy publiczne są widoczne; atrybut nie jest potrzebny, aby były widoczne.
DispIdAttribute Określa identyfikator dyspozytora COM (DISPID) metody lub pola. Ten atrybut zawiera identyfikator DISPID dla metody, pola lub właściwości, która opisuje.

Narzędzia międzyoperacowe modelu COM mogą stosować ten atrybut.
ComDefaultInterfaceAttribute Wskazuje interfejs domyślny dla klasy COM zaimplementowanej na platformie .NET.

Narzędzia międzyoperacowe modelu COM mogą stosować ten atrybut.
FieldOffsetAttribute Wskazuje fizyczne położenie każdego pola w klasie, gdy jest używane z atrybutem StructLayoutAttribute, a właściwość LayoutKind jest ustawiona na Jawne.
GuidAttribute Określa globalnie unikatowy identyfikator (GUID) klasy, interfejsu lub całej biblioteki typów. Ciąg przekazany do atrybutu musi być formatem, który jest akceptowalnym argumentem konstruktora dla typu System.Guid.

Narzędzia międzyoperacowe modelu COM mogą stosować ten atrybut.
IDispatchImplAttribute Wskazuje, która implementacja interfejsu IDispatch używa środowiska uruchomieniowego języka wspólnego podczas uwidaczniania podwójnych interfejsów i dispinterfaces do modelu COM.
InAttribute Wskazuje, że dane powinny być ułożone do obiektu wywołującego. Może służyć do atrybutów parametrów.
InterfaceTypeAttribute Określa sposób uwidaczniania interfejsu zarządzanego dla klientów COM (tylko podwójne, pochodne IUnknown lub IDispatch).

Narzędzia międzyoperacowe modelu COM mogą stosować ten atrybut.
LCIDConversionAttribute Wskazuje, że sygnatura metody niezarządzanej oczekuje parametru LCID.

Narzędzia międzyoperacowe modelu COM mogą stosować ten atrybut.
MarshalAsAttribute Wskazuje sposób, w jaki dane w polach lub parametrach powinny być rozdzielane między kodem zarządzanym i niezarządzanym. Atrybut jest zawsze opcjonalny, ponieważ każdy typ danych ma domyślne zachowanie marshallingu.

Narzędzia międzyoperacowe modelu COM mogą stosować ten atrybut.
OptionalAttribute Wskazuje, że parametr jest opcjonalny.

Narzędzia międzyoperacowe modelu COM mogą stosować ten atrybut.
OutAttribute Wskazuje, że dane w polu lub parametrze muszą być ułożone z wywoływanego obiektu z powrotem do obiektu wywołującego.
PreserveSigAttribute Pomija przekształcenie HRESULT lub sygnatury ponownej, które zwykle odbywa się podczas wywołań międzyoperacyjnych. Atrybut ma wpływ na marshalling, a także eksportowanie biblioteki typów.

Narzędzia międzyoperacowe modelu COM mogą stosować ten atrybut.
ProgIdAttribute Określa wartość ProgID klasy .NET. Może służyć do atrybutów klas.
StructLayoutAttribute Steruje fizycznym układem pól klasy.

Narzędzia międzyoperacowe modelu COM mogą stosować ten atrybut.

Atrybuty narzędzia konwersji

W poniższej tabeli opisano atrybuty stosowane przez narzędzia międzyoperacyjnych modelu COM podczas procesu konwersji. Te atrybuty nie są stosowane w czasie projektowania.

Atrybut opis
ComAliasNameAttribute Wskazuje alias COM dla parametru lub typu pola. Może służyć do atrybutów parametrów, pól lub zwracanych wartości.
ComConversionLossAttribute Wskazuje, że informacje o klasie lub interfejsie zostały utracone podczas importowania ich z biblioteki typów do zestawu.
ComEventInterfaceAttribute Identyfikuje interfejs źródłowy i klasę, która implementuje metody interfejsu zdarzenia.
ImportedFromTypeLibAttribute Wskazuje, że zestaw został pierwotnie zaimportowany z biblioteki typów COM. Ten atrybut zawiera definicję biblioteki typów oryginalnej biblioteki typów.
TypeLibFuncAttribute Zawiera funCFLAGS, które zostały pierwotnie zaimportowane dla tej funkcji z biblioteki typów COM.
TypeLibTypeAttribute Zawiera typ TYPEFLAGS , które zostały pierwotnie zaimportowane dla tego typu z biblioteki typów COM.
TypeLibVarAttribute Zawiera wartość VARFLAGS, która została pierwotnie zaimportowana dla tej zmiennej z biblioteki typów COM.

Zobacz też