WCFで転送されたオブジェクトを収縮/シリアル化したままにする

Possible Duplicate:
Get Just the Body of a WCf Message

おはようございます、

複雑なオブジェクトを構築して消費するクライアントに送信するWCFサービスがあります。現在のところサービスは素晴らしいですが、XMLはクライアント上で再フラッシュ/デシリアライズされており、クライアントがXMLを使用したいと思っているので、これは望ましくありません。

そこで、WCFサービスの応答の一部として送信される「XML文書」を取得する方法があります。もちろん、私はクライアント上でもう一度それをシリアル化することができますが、避けることができれば、なぜ本当に余分な手順を行うのですか?

TIA JB

1
nl ru de
私はいくつかの手を持たずに理解しているか分からない。私は次のことをしています。私のクライアントは、WCFDomainというドメインのサービスリファレンスを持っています。私の要求はWCFDomainのクラスを期待するかもしれません。私の対応にも同じです。だから、私は自分のリクエストとレスポンスのオブジェクトを作成し、リクエストに値を設定します。次に、リクエストオブジェクトを送信しているサービスを呼び出し、その結果を自分のレスポンスオブジェクトに返します。オブジェクトは私が望むようにデータが流れる限りですが、実際にはXML /非直列化バージョンがほしいだけです。
追加された 著者 GPGVM,

1 答え

サーバー側とクライアント側の両方で複数のWCF受信/送信ステップに接続する可能性がありますが、シリアライゼーションの実行方法に影響を与える可能性があります(あなたのケースでは実行されません)。シナリオ。

ワークフローを簡素化し、すぐに使える機能を利用する方がよいでしょう。

私は最も簡単なアプローチは、サーバー側でのみオブジェクトを手動でシリアル化し、結果を文字列としてクライアントに返すことだと思います。

柔軟性を保つために(後で直列化データに付随するデータを追加したいかもしれない)、このシリアル化されたXMLを専用のデータ転送オブジェクト(DTO)のプロパティに入れます。

このDTOは、そのプロパティからXMLを読み取るだけのクライアントに送信されます。

フードの下には、もちろん、まだシリアル化が進行中です。しかし、これは組み込みの機能ハットがWCFサービス/クライアント通信によって完全に透過的に実行されることになります。手動で影響を与える重大な理由がない場合はそのままにしておいてください。あなたが何をしているのかわからない場合は、代わりにPandoraの箱を開けるかもしれません...

上記のDTOのよ​​うな単純なオブジェクトを送信することは、ここではあまり重要ではありません。つまり、このシナリオは、主にワイヤを介して一連の文字列を送信することになります。これにより、トラブルやオーバーヘッドはほとんどありません。

1
追加された
あなたは私がその道を歩み始めたことは知っていますが、私の質問に答える別の人からの投稿は、WCFサービスの仕組みを理解できていないと言いました。正直なところ私は質問をうまくやって答えを求めなかったと思う。とにかくこれは理にかなっています。ありがとうございました
追加された 著者 GPGVM,