高度なデザインに関する問題
リモート型の型情報はクライアントから要求されるため、多くの場合に最も簡単なのは、リモート型ライブラリをメタデータ ライブラリとして使用するためにクライアントに配置することです。しかし、クライアントから型の実装にアクセスできないようにする必要が生じる場合も多くあります。この問題を解決するには、次のようないくつかの方法があります。
「単独クライアント」で説明するように、Soapsuds ツール (Soapsuds.exe) を使用して、単独クライアントを構築する方法。
サーバー アセンブリと同じ名前および型情報を持つ、メタデータだけのアセンブリをクライアントに配置し、バージョン チェックを無効にするか、またはバージョンを空白のままにする方法。
別のライブラリでインターフェイスを宣言し、そのライブラリをクライアントと共に配置する方法。使用するインターフェイスを実装するサーバー クラスを公開し、クライアントはそのサーバー クラスが実装するインターフェイスへのプロキシを取得することでそのクラスを利用します。
メモ : クライアントは、プロキシを取得するには、Activator.GetObject メソッドを呼び出す必要があります。new (Visual Basic では New) を呼び出すと、コンパイル エラーがスローされます。インターフェイスのインスタンスは生成できません。
実際のクラスに対する、リモート処理可能なラッパー クラスを構築する方法。ラッパー ライブラリを公開し、配置します。クライアントは実際のオブジェクトにはアクセスできません。