ManagedToNativeComInteropStubAttribute Klasa

Definicja

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
ManagedToNativeComInteropStubAttribute
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ę wycinkową; 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()

W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną 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)

Dotyczy