ネットワークアプリケーションを作成していますが、私はWCFを利用しようとしています。最終的にはピアツーピアシステムになりますが、開発のためにアプリケーションをコアアプリケーションとプレーヤアプリケーションに分割しました。これは、WCFサービスがホストとクライアントの両方のデータとやり取りする必要があることを意味します。だから私の質問は、ホストアプリケーション上のオブジェクトとやり取りするサービスを取得する方法です。 ServiceBehaviour属性のInstanceContextModeをInstanceContextMode.Singleに設定すると、クラスインスタンスをServiceHostコンストラクタに渡すことができ、次にホストオブジェクトとやりとりすることができますが、クラスタイプをServiceHostコンストラクタに渡しているときにこれを行う方法これはPerCallまたはPerSession InstanceContextModeを使用している場合に行う必要があります。WCFサービスのホストオブジェクトとのやり取り
WCFサービスのすべての単純な例は、電卓のようなものを使用しています。 Calculatorの例では、クラス/インタフェースのメソッドパラメータを使用してクライアントからデータを渡すことができ、ホスト上のオブジェクトと対話する必要はありません。私は仕事に間違ったツールを使用していますか?
:PerCallとして実装されているサービスで、その後
:これを行う方法の1つは、共有状態を管理するサーバー側のクラスのシングルトンインスタンスを作成することです先にデュプレックス通信を行う。私は彼らが2つのサービス、それぞれの方向から1つを設定するよりも優れているなら、うまくいきません。ただし、ホストからのデータへのアクセスに関する同じ制限がDuplexサービスに適用されますか? –
クライアントでフルデュプレックスとホスティングのどちらの方法を使うかは1つの質問です(注意:NATとファイアウォールを処理する必要がある場合は、全二重方式が適しています)。しかしいずれにしても、サーバー側で共有状態にアクセスする必要があります。これを行う1つの方法は、ある種のシングルトン・サーバー・インスタンスを公開し、そのシングルトン・インスタンスにサービス・メソッドがアクセスするようにすることです。私はこれを行う一つの方法で私の答えを更新しました。 – RQDQ