ManagedToNativeComInteropStubAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zapewnia obsługę dostosowywania użytkowników wycinków międzyoperacyjności w scenariuszach międzyoperacyjności zarządzanych do modelu COM.
public ref class ManagedToNativeComInteropStubAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)]
public sealed class ManagedToNativeComInteropStubAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
public sealed class ManagedToNativeComInteropStubAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class ManagedToNativeComInteropStubAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)>]
type ManagedToNativeComInteropStubAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
type ManagedToNativeComInteropStubAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
type ManagedToNativeComInteropStubAttribute = class
inherit Attribute
Public NotInheritable Class ManagedToNativeComInteropStubAttribute
Inherits Attribute
- Dziedziczenie
- Atrybuty
Uwagi
Ten atrybut umożliwia deweloperom międzyoperacyjności, którzy mają wiedzę na temat marshalingu i wewnętrznej pracy wywołań międzyoperacyjności, aby wykonać następujące czynności:
Korzystaj z dostosowanych wycinków międzyoperacyjnej w czasie kompilacji zamiast czasu wykonywania.
Debugowanie niestandardowych wycinków międzyoperacyjnej.
Udostępnianie możliwości marshalingu w wycinku, które nie zapewnia środowisko uruchomieniowe.
Udostępnianie możliwości wysyłania metody specyficznej dla użytkownika.
Atrybut można zastosować w metodzie w interfejsie, aby określić odpowiednią metodę wycinka dla międzyoperacyjności modelu COM zarządzanego natywne.
Jeśli ten atrybut występuje w czasie wykonywania, środowisko uruchomieniowe języka wspólnego nie generuje dynamicznie wycinka międzyoperacyjnej. Zamiast tego wywołuje niestandardowy wycink, który został utworzony w czasie kompilacji.
Atrybut ManagedToNativeComInteropStubAttribute ma następujące cechy:
Atrybutu można używać tylko w metodach z interfejsów oznaczonych jako
[ComImport]
. Jeśli atrybut jest stosowany do typów innych niż interfejs, jest ignorowany przez środowisko uruchomieniowe.Atrybut może być używany tylko raz w tej samej metodzie w interfejsie. Jeśli jest używany więcej niż raz, kompilator generuje zduplikowany błąd atrybutu.
Atrybut nie jest dziedziczony z interfejsu podstawowego. Interfejsy pochodne muszą jawnie przypisać atrybut.
Zestaw zawierający metodę przypisaną musi również zawierać dostosowany wycink.
Metody przeciążonych wycinków są prawidłowe. Mimo że określasz tylko typ i nazwę metody wycinka, środowisko uruchomieniowe odnajdzie odpowiedni wycink. Robi to, sprawdzając wszystkie argumenty w metodzie interfejsu, a następnie wykonując pełne dopasowanie podpisu przy użyciu jawnego this
wskaźnika.
Istnieje również możliwość, aby wiele metod w interfejsie współużytkować tę samą metodę wycinka; jednak podczas korzystania z udostępnionych wycinków należy zachować ostrożność.
Uwaga
Metody wycinka muszą być statyczne.
Środowisko uruchomieniowe może poinformować środowisko uruchomieniowe o użyciu niestandardowego wycinka międzyoperacyjności w czasie kompilacji zamiast czasu wykonywania przy użyciu następującego kodu w języku C#:
[ComImport]
interface IMyInterface
{
[ManagedToNativeComInteropStubAttribute(typeof(TestStubClass),
"ForwardTestStub")]
void GetString (string arg);
}
Następnie można użyć następującego kodu, aby zadeklarować odpowiednią metodę wycinka:
class TestStubClass
{
internal static void ForwardTestStub(IMyInterface thisObject,
string arg) {…}
}
Konstruktory
ManagedToNativeComInteropStubAttribute(Type, String) |
Inicjuje ManagedToNativeComInteropStubAttribute nowe wystąpienie klasy o określonym typie klasy i nazwie metody. |
Właściwości
ClassType |
Pobiera klasę zawierającą wymaganą metodę wycinka. |
MethodName |
Pobiera nazwę metody wycinka. |
TypeId |
Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu . (Odziedziczone po Attribute) |
Metody
Equals(Object) |
Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi. (Odziedziczone po Attribute) |
GetHashCode() |
Zwraca wartość skrótu dla tego wystąpienia. (Odziedziczone po Attribute) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
IsDefaultAttribute() |
Podczas zastępowania w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej. (Odziedziczone po Attribute) |
Match(Object) |
Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi. (Odziedziczone po Attribute) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone po Attribute) |