2012-01-17 4 views
1

サーバー/クライアントアプリケーション間でWCF KnownType属性を使用することに関する質問があります。
wcfを使用してサーバーとクライアント間でオブジェクトを転送する方法が異なります。サーバ間でKnownType属性を使用するか使用しないか?

  1. knowntypeを使用しています。
  2. DataContractResolverを使用します。
  3. POCOを使用して既知のタイプのオブジェクトのデータを転送します(ベストプラクティス)。

(3)データを渡す最も良い方法は何ですか?それはシリアル化された(xml/json/bufferProtocol)文字列ですか?それは自分自身のクラス(それから私たちはknowntypeをもう一度取得する)ですか?

+0

私は3つのオプションすべてが何らかの種類のXMLにシリアル化されていると考えています。 –

+0

wcf(SOAP)を使用すると、メッセージがXMLになります。まだJSONまたはバッファプロトコルになる文字列でデータ(POCO)を転送することができます。私はちょうど良いことを知りたいですか? (私はRESTについて質問していません) – guyl

答えて

0

私は通常、DataContractSerializerを使用してPOCOオブジェクトを使用しています。このアプローチでは、DTOはWCF会話の両端にアクセスできる別のアセンブリに格納されていました。

DTOに関連する継承があった場合にのみKnownTypesを明示的に使用する必要がありました。たとえば、サービスコントラクトが基本クラスを指定していて、実際に派生クラスを返す場合、KnownType設定で継承を明示的に指定する必要があります。

これは私の使用ではまれで、一般的には必要ありません。

DataContract属性を使用してPOCOオブジェクトを装飾します。 DataMember属性でプロパティを飾ると、フレームワークが残りの部分を処理します。

関連する問題