サーバー側のクラスに実装されたファクトリ メソッドが具体的なオブジェクトへのインターフェイスを返し、これもまったく同じサーバー上で実行される .NET リモート処理コードがあります。.NET リモート処理は自動的にプロキシを作成し、インターフェイスをクライアントに渡して直接呼び出すことができるようにします。
インターフェースの例:
public interface IFactory
{
IFoo GetFoo();
}
public interface IFoo
{
void DoSomething();
}
クライアントコードの例:
...
IFactory factory = (IFactory) System.Activator.GetObject (typeof (IFactory), url);
...
IFoo foo = factory.GetFoo (); // the server returns an interface; we get a proxy to it
foo.DoSomething ();
...
これはすべてうまくいきます。ただし、コードを WCF に移行しようとしています。元の .NET リモート処理と同様に、インターフェイスを渡し、WCF がクライアント上でオンザフライでプロキシを生成する手段があるかどうか疑問に思います。
また、実際のクラスを公開したくないので、クラス インスタンスを返したくありません。また、完全なインスタンスをシリアル化し、サーバーとクライアントの間でやり取りすることもできません。クライアントがインターフェイス ポインター/プロキシを介してサーバー オブジェクトと通信することを本当に望んでいます。
何か案は?