ManagedToNativeComInteropStubAttribute Klasse

Definition

Unterstützt die Benutzeranpassung von Interop-Stubs in für COM verwalteten Interopszenarios.

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
Vererbung
ManagedToNativeComInteropStubAttribute
Attribute

Hinweise

Dieses Attribut ermöglicht Interop-Entwicklern, die Wissen über das Marshaling und die inneren Arbeiten von Interopaufrufen haben, um folgendes auszuführen:

  • Nutzen Sie angepasste Interop-Stubs zum Buildzeitpunkt anstelle der Laufzeit.

  • Debuggen von angepassten Interop-Stubs.

  • Bereitstellen von Marshalingfunktionen innerhalb eines Stubs, die die Laufzeit nicht bereitstellt.

  • Stellen Sie benutzerspezifische Methodenversandfunktionen bereit.

Sie wenden das Attribut auf eine Methode in einer Schnittstelle an, um eine entsprechende Stubmethode für verwaltete com-Interop anzugeben.

Wenn dieses Attribut während der Laufzeit aufgetreten ist, generiert die allgemeine Sprachlaufzeit keinen Interop-Stub. Stattdessen ruft er den benutzerdefinierten Stub auf, der zur Buildzeit erstellt wurde.

Das ManagedToNativeComInteropStubAttribute Attribut weist die folgenden Merkmale auf:

  • Das Attribut kann nur für Methoden aus Schnittstellen verwendet werden, die markiert [ComImport]sind. Wenn das Attribut auf Nicht-Schnittstellentypen angewendet wird, wird sie von der Laufzeit ignoriert.

  • Das Attribut kann nur einmal auf derselben Methode in einer Schnittstelle verwendet werden. Wenn sie mehr als einmal verwendet wird, generiert der Compiler einen duplizierten Attributfehler.

  • Das Attribut ist nicht von einer Basisschnittstelle erbbar. Abgeleitete Schnittstellen müssen das Attribut explizit zuweisen.

  • Die Assembly, die die zugeordnete Methode enthält, muss auch den angepassten Stub enthalten.

Überladene Stubmethoden sind gültig. Obwohl Sie nur den Typ und den Namen der Stubmethode angeben, erkennt die Laufzeit den entsprechenden Stub. Dies geschieht durch Untersuchen aller Argumente auf der Schnittstellesmethode, und führen Sie dann den vollständigen Signaturabgleich durch verwendung eines expliziten this Zeigers aus.

Es ist auch möglich, dass mehrere Methoden in einer Schnittstelle dieselbe Stub-Methode freigeben können; Sie sollten jedoch vorsichtig sein, wenn Sie freigegebene Stubs verwenden.

Hinweis

Stub-Methoden müssen statisch sein.

Sie können die Laufzeit informieren, um einen angepassten Interop-Stub zum Buildzeitpunkt anstelle der Laufzeit mit dem folgenden C#-Code zu verwenden:

[ComImport]  
interface IMyInterface  
{  
    [ManagedToNativeComInteropStubAttribute(typeof(TestStubClass),  
              "ForwardTestStub")]  
    void GetString (string arg);  
}  

Anschließend können Sie den folgenden Code verwenden, um die entsprechende Stubmethode zu deklarieren:

class TestStubClass  
{  
    internal static void ForwardTestStub(IMyInterface thisObject,  
             string arg) {…}  
}  

Konstruktoren

ManagedToNativeComInteropStubAttribute(Type, String)

Initialisiert eine neue Instanz der ManagedToNativeComInteropStubAttribute-Klasse unter Verwendung des angegebenen Klassentyps und Methodennamens.

Eigenschaften

ClassType

Ruft die Klasse ab, die die erforderliche Stub-Methode enthält.

MethodName

Ruft den Namen der Stub-Methode ab.

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)

Methoden

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Attribute)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

(Geerbt von Attribute)

Gilt für