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