2011-07-18 24 views
2

私はWCFをかなり新しくしており、ストリーミングの仕組みを理解しようとしています。基本的にdbから情報を返すWebサービスがあります。返されるデータは非常に大きい可能性があります。誰もがこれがどのように行われているかの良い例を指摘することができます。私が物事を正しく理解していれば、私のWebサービスメソッドはストリームオブジェクトを返す必要があります。各オブジェクトをシリアライズしてストリームに書き込むだけですか?もしそうなら、どのようにしてシリアル化が行われますか?繰り返しますが、簡単な例が非常に高く評価されます。大きなデータセットを返すWCFサービスでストリーミングを使用するにはどうすればよいですか?

答えて

3

BindingのTransferModeプロパティをStreamed値に設定して、WCFサービスを使用して作業するだけで済みます。 WCFインフラストラクチャは自動的にすべての仕事を行います。任意のサービス(WCF、ASMX、など)から大きな結果セットを返すようなアーキテクチャの香りがあり、

Streaming Message Transfer

+0

したがって、Streamオブジェクトを返す必要はありませんか?私のWebサービスが大きなリストを返している場合、これはまだ動作しますか? –

+0

ストリームを返す必要はありません。それは大きなリストでも動作します。私は私の答えに新しいリンクを追加しました。 – platon

+0

BindingのTransferModeをストリーミングすると、サービスのインターフェイスに制限が加えられます。ストリーミングされたメソッドを独自のインターフェイスに置き、残りのメソッドをバッファされたままのインターフェイス(デフォルト)に保つことは、おそらく良い考えです。 –

0

実は、私は建築をrevistたい:ここ

は1つのより有用なリンクです。

大規模な結果セットをサービスから返す理由はほとんどありません。 more/betterフィルタリングとpagineの実装の組み合わせがソリューションです。単純なサービスベニヤをデータベースに配置するだけの場合は、フィルタリングとページングがフレームワークに組み込まれているため、WCF Data Servicesを調べてください。それ以外の場合は、WCF Data Servicesを調べて、自分が何をやっているのかを見て、あなたのサービスを模倣してください。

関連する問題