次の方法で共有


ICustomMarshaler インターフェイス

メソッド呼び出しを処理するためのカスタム ラッパーの提供を目的としています。

この型のすべてのメンバの一覧については、ICustomMarshaler メンバ を参照してください。

Public Interface ICustomMarshaler
[C#]
public interface ICustomMarshaler
[C++]
public __gc __interface ICustomMarshaler
[JScript]
public interface ICustomMarshaler

解説

カスタム マーシャラを使用するには、マーシャリングするパラメータまたはフィールドに MarshalAsAttribute を適用する必要があります。また、 UnmanagedType.CustomMarshaler をそのコンストラクタに渡し、 MarshalType を指定する必要があります。属性は、適切なカスタム マーシャラを識別して、適切なラッパーをアクティブ化します。共通言語ランタイムの相互運用サービスは、次に属性を検査して、引数をマーシャリングするときにカスタム マーシャラを作成します。これは、カスタム マーシャラの MarshalNativeToManaged メソッドと MarshalManagedToNative メソッドを呼び出して、呼び出しを処理するために正しいラッパーをアクティブ化します。

ICustomMarshaler インターフェイスの実装に加えて、カスタム マーシャラは GetInstance という静的 (Visual Basic では Shared) メソッドを実装する必要があります。このメソッドは、パラメータとして String を受け入れ、戻り型は ICustomMarshaler です。この静的 (Visual Basic では Shared) メソッドは、カスタム マーシャラのインスタンスをインスタンス化するために、共通言語ランタイムの COM 相互運用の層によって呼び出されます。 GetInstance に渡される文字列は、返されたカスタム マーシャラをカスタマイズするためにメソッドが使用できる Cookie です。

必要条件

名前空間: System.Runtime.InteropServices

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

ICustomMarshaler メンバ | System.Runtime.InteropServices 名前空間