War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern

ICustomMarshaler-Schnittstelle

Aktualisiert: November 2007

Vorgesehen für die Bereitstellung benutzerdefinierter Wrapper, mit denen Methodenaufrufe behandelt werden.

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

[ComVisibleAttribute(true)]
public interface ICustomMarshaler
/** @attribute ComVisibleAttribute(true) */
public interface ICustomMarshaler
public interface ICustomMarshaler

Wenn Sie einen benutzerdefinierten Marshaller verwenden möchten, müssen Sie das MarshalAsAttribute auf den Parameter oder das Feld anwenden, das gemarshallt werden soll. Sie müssen außerdem UnmanagedType.CustomMarshaler an den Konstruktor übergeben und den MarshalType angeben. Das Attribut gibt den entsprechenden benutzerdefinierten Marshaller zum Aktivieren des entsprechenden Wrappers an. Der Interop-Dienst der Common Language Runtime überprüft anschließend das Attribut und erstellt beim Marshallen des Arguments den benutzerdefinierten Marshaller. Die MarshalNativeToManaged-Methode und die MarshalManagedToNative-Methode des benutzerdefinierten Marshaller werden aufgerufen, um den richtigen Wrapper für die Aufrufbehandlung zu aktivieren.

Neben der Implementierung der ICustomMarshaler-Schnittstelle müssen benutzerdefinierte Marshaller eine static-Methode mit der Bezeichnung GetInstance implementieren, die einen String als Parameter akzeptiert und deren Rückgabetyp ICustomMarshaler ist. Diese static-Methode wird von der COM-Interop-Schicht der Common Language Runtime aufgerufen, um eine Instanz des benutzerdefinierten Marshaller zu instanziieren. Der an GetInstance übergebene String ist ein Cookie, mit dessen Hilfe die Methode den zurückgegebenen benutzerdefinierten Marshaller anpassen kann.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft