カスタム マーシャリング
マーシャラーは、基本的に、新旧のインターフェイスの機能間における橋渡しの役割を行います。 カスタム マーシャリングによって、古いインターフェイスを使用するように設計されたクライアントを、新しいインターフェイスだけを実装するサーバーで使用できるようになります。 また、カスタム マーシャリングによって、新しいインターフェイスを使用するように設計されたクライアントを、古いインターフェイスを公開するサーバーで使用できるようになります。
相互運用マーシャラーを使用する代わりに、異なるマーシャリングの動作を導入したり、別の方法でコンポーネント オブジェクト モデル (COM: Component Object Model) にインターフェイスを公開したりする、インターフェイスのためのカスタム マーシャラーを設計できます。 カスタム マーシャラーを使用することで、新しい .NET Framework コンポーネントと既存の COM コンポーネントの相違を最小限にすることができます。
たとえば、INew というマネージ インターフェイスを開発するとします。 このインターフェイスは、標準の COM 呼び出し可能ラッパー (CCW: COM Callable Wrapper) を経由して COM に公開される場合、マネージ インターフェイスと同じメソッドを持ち、相互運用マーシャラー内に構築されているマーシャリング規則を使用します。 また、IOld という一般的な COM インターフェイスが既に INew インターフェイスと同じ機能を提供しているとします。 カスタム マーシャラーを導入することで、単純に呼び出しを INew インターフェイスのマネージ実装にデリゲートする IOld のアンマネージ実装を提供できます。 カスタム マーシャラーの基本的な役割は、マネージ インターフェイスとアンマネージ インターフェイス間の橋渡しをすることです。
カスタム マーシャラーはディスパッチのみのインターフェイスでマネージ側からアンマネージ側に呼び出す場合には呼び出されないことに注意してください。
関連トピック
Title |
Description |
---|---|
カスタム マーシャラーのセットアップに関連するインターフェイスを準備する方法について説明します。 |
|
カスタム マーシャラーを準備するときのオプションについて説明します。 |
|
MarshalAsAttribute 属性を使用してカスタム マーシャラーを挿入する方法について説明します。 |
|
COM 相互運用機能とプラットフォーム呼び出しによるマーシャリングについて説明します。 |