2011-10-25 11 views
0

デュプレックスサービス(「ServiceDuplex」)への参照を持つWCF WebHTTPサービス(「ServiceREST」)を作成するとします。 ServiceDuplexは、要求されたデータを配信するために特定のコールバックメンバの実装を必要とします。たとえば、ServiceDuplexでGetCustomersを呼び出すと、コールバック「ReceiveCustomers」を介して顧客にサービスを提供するメソッドが呼び出されます。RESTfulサービス内のWCFデュプレックスサービスの使用

私は、ServiceRESTでメソッドGetSingleCustomerを使いたいとします。すべてのデータが(起動後にキャッシュするのではなく)オンデマンドで取得されていると仮定して、私はServiceDuplexから最初に "GetCustomers"を呼び出し、私のコレクションがコールバック内に埋め込まれるのを待ってから、私は欲しい。

webHttpはクライアントへのコールバックをサポートしていないので、二重のコールバックがコレクションを満たすまで、私はGET(GetSingleCustomer)コールの中でAutoResetEventのようなものを使用しなければなりません。

私がやろうとしていることに対して「ベストプラクティス」があるのですか、それとも私が間違ってやっているようなことですが、このような練習は作成されていませんか?

ありがとうございました。

答えて

0

Keepをシンプルにすると、ServiceDuplexはsupossedを実行していないので、Asyncを呼び出すようにして、それを最初の場所で使用するようにします。

+0

私は実際にはRESTだけに固執する選択肢はありません。 ServiceDuplexはすでに存在しており、そこからデータが必要です。また、ServiceDuplexはなぜ「やるべきことをしていない」のですか? – Thelonias

+0

私たちのメソッドでは非同期動作を得るためにデュプレックスチャネルが作られ、RESTサービスと連鎖するのは本当にオーバーロードです。応答を取得する時間が増え、RESTで同期させる必要があるため非同期呼び出しを無効にしますサービス、私は最後のリソースとしてのみそれを行うだろうが、それはちょうど私の意見です。 – Andresps2

+0

私は二重またはRESTでしばらくの間働いていました。私の会社では二重化を使用する大きなプロジェクトがあり、私の仕事は小さなiOSクライアントを作ることでした。両方のシステムを統合するか、ビジネスロジックがゼロから、最後のものが私たちの選択であり、非常にうまくいきましたが、それは小規模なクライアントでした。デュプレックスサービスの100%を書き直す必要がある場合は違います。私の2セント。 – Andresps2

関連する問題