(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

ManagedToNativeComInteropStubAttribute-Klasse

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

System.Object
  System.Attribute
    System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute

Namespace:  System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

[AttributeUsageAttribute(AttributeTargets.Method, Inherited = false, AllowMultiple = false)]
[ComVisibleAttribute(false)]
public sealed class ManagedToNativeComInteropStubAttribute : Attribute

Der ManagedToNativeComInteropStubAttribute-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeUnterstützt von  Portable KlassenbibliothekManagedToNativeComInteropStubAttributeInitialisiert eine neue Instanz der ManagedToNativeComInteropStubAttribute-Klasse unter Verwendung des angegebenen Klassentyps und Methodennamens.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftUnterstützt von  Portable KlassenbibliothekClassTypeRuft die Klasse ab, die die erforderliche Stub-Methode enthält.
Öffentliche EigenschaftUnterstützt von  Portable KlassenbibliothekMethodNameRuft den Namen der Stub-Methode ab.
Öffentliche EigenschaftTypeIdBei Implementierung in einer abgeleiteten Klasse wird ein eindeutiger Bezeichner für dieses Attribute abgerufen. (Von Attribute geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeUnterstützt von  Portable KlassenbibliothekEqualsInfrastruktur. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. (Von Attribute geerbt.)
Öffentliche MethodeUnterstützt von  Portable KlassenbibliothekGetHashCodeGibt den Hashcode für diese Instanz zurück. (Von Attribute geerbt.)
Öffentliche MethodeUnterstützt von  Portable KlassenbibliothekGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeIsDefaultAttributeBeim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist. (Von Attribute geerbt.)
Öffentliche MethodeMatchBeim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Von Attribute geerbt.)
Öffentliche MethodeUnterstützt von  Portable KlassenbibliothekToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetIDsOfNamesOrdnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoRuft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoCountRuft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.InvokeStellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von Attribute geerbt.)
Zum Seitenanfang

Dieses Attribut ermöglicht es Interop-Entwicklern, die mit Marshalling und der Funktionsweise von Interop-Aufrufen vertraut sind, wie folgt vorzugehen:

  • Nutzen Sie benutzerdefinierte Interop-Stubs zur Buildzeit statt der Laufzeit.

  • Debuggt benutzerdefinierte Interop-Stubs.

  • Stellt Marshallingfunktionen innerhalb eines Stubs bereit, die die Laufzeit nicht bereitstellt.

  • Stellt benutzerspezifische Methodendispatchfunktionen bereit.

Sie wenden das Attribut auf eine Methode in einer Schnittstelle an, um eine entsprechende Stubmethode für verwaltet-zu-systemeigenem COM-Interop anzugeben.

Wenn dieses Attribut während der Laufzeit angetroffen wird, generiert die Common Language Runtime keinen Interop-Stub dynamisch. Stattdessen wird der benutzerdefinierte Stub aufgerufen, der zur Buildzeit erstellt wurde.

Das ManagedToNativeComInteropStubAttribute-Attribut weist folgende Merkmale auf:

  • Das Attribut kann nur für Methoden von Schnittstellen, die mit [ComImport] markiert sind, verwendet werden. Wenn das Attribut auf andere Typen als Schnittstellentypen angewendet wird, wird es von der Laufzeit ignoriert.

  • Das Attribut kann nur einmal für die gleiche Methode in einer Schnittstelle verwendet werden. Wenn mehrfach verwendet, generiert der Compiler einen Fehler wegen eines doppelten Attributs.

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

  • Die Assembly, die die attributierte Methode enthält, muss auch den benutzerdefinierten Stub enthalten.

Überladene Stubmethoden sind gültig. Obwohl Sie nur den Typ und den Namen der Stubmethode angeben, ermittelt die Laufzeit den entsprechenden Stub. Dazu werden alle Argumente für die Schnittstellenmethode untersucht und eine Übereinstimmung der vollständigen Signatur mit einem expliziten this-Zeiger ausgeführt.

Es ist auch möglich, dass mehrere Methoden in einer Schnittstelle die gleiche Stubmethode verwenden; Sie sollten jedoch vorsichtig sein, wenn Sie freigegebene Stubs verwenden.

HinweisHinweis

Stubmethoden müssen statisch sein.

Sie könnten die Laufzeit informieren, um zur Buildzeit statt zur Laufzeit einen benutzerdefinierten Interop-Stub mit dem folgenden C#-Code zu verwenden:

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

Sie könnten dann die entsprechende Stubmethode mithilfe des folgenden Codes deklarieren:

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

.NET Framework

Unterstützt in: 4.5, 4

.NET Framework Client Profile

Unterstützt in: 4

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft