MSDN Web サイト ( http://msdn.microsoft.com/en-us/library/aa730857(v=vs .80).aspx )。
とはいえ、まだ疑問が 1 つあります。誰かが私を助けてくれることを願っています。
セッション「ステップ 3 - クライアントがアクティブ化したオブジェクトの代わりにセッションを使用する」では、私たちの会社でのリモート処理の使用方法を正確にカバーしており、反対側でインスタンス化されたリモート オブジェクトへの参照を取得して使用する方法を示しました (サーバー側)。ただし、私たちの場合、クライアントがオブジェクトへの参照を要求した時点で、サーバー側でこれらのオブジェクトをインスタンス化することはしません。オブジェクトはサーバー側に既に存在し (以前にインスタンス化されていました)、これらの既にアクティブなオブジェクトへの参照を取得したいだけです。
現在、Remoting を使用してこれを行うにはどうすればよいでしょうか? 「オブジェクト サーバー」オブジェクト (MarshalByRefObject から派生) があります。このオブジェクトは、URL「tcp://localhost:9002/ObjectServerInstance」から入手できます。リモート アプリケーションは、Activator.GetObject を使用して参照を取得できます。この Object Server オブジェクトは、インターフェイス IObjectServer を実装し、次のシグネチャを持つメソッドを宣言します。 Object GetObject (string objTag);
クライアント アプリケーションは、この Object Server オブジェクトへの参照を使用してその GetObject メソッドを呼び出し、オブジェクト タグ文字列をパラメーターとして渡します (例: "Portfolio")。次に、このメソッドは、Portfolio オブジェクトへの参照を返します。Portfolio オブジェクトは、このタグ「Portfolio」を使用して Object Server オブジェクトの前に公開されています。もちろん、Portfolio オブジェクトも MarshalByRefObject から派生しています。また、リモート クライアントが参照を要求した場合にのみインスタンス化されるのではなく、サーバー上で既にインスタンス化されています。
もちろん、これは別の方法で行うこともできます。リモートでアクセスされる可能性のある各オブジェクトは、プログラムで独自の objectUri を使用して、サーバー側のリモート処理レイヤーの前に自身を公開できます (例: “tcp://localhost:9002/MyObjectInstance”)。クライアント側では、Activator を使用できます。 .GetObject を直接使用して、各オブジェクトの参照を取得します。しかし、これは私が提起している点とは無関係です。いずれにせよ、サーバー オブジェクトは、Remoting レイヤーの前に公開するときに既に存在します。
私は十分に明確でしたか?WCF を使用してこれを行う方法はありますか?