2012-01-16 15 views
13

私は属性プロパティIsReferenceと何をしているのか理解しています。しかし、私は理由/理由を理解していないではないそれを使用してください。 IsReference = trueを使うのは悪い考えですか?DataContractsでIsReference = trueを使用しない場合はどうしたらよいですか?

私のwcfサービスが.netに.netである場合、には良い理由がありますか?はIsReference = trueに設定されていますか?

答えて

1

何も悪いことはないと思います。グラフに同じオブジェクトインスタンスへのリンクが複数含まれている場合は、この属性をtrueに設定するとXMLサイズが小さくなります。

http://zamd.net/2008/05/20/datacontract-serializer-and-isreference-property/

私はそれがデフォルトで有効になっていない理由はわからないが。

10

IsReferenceを使用して回避するために、少なくとも2つの理由があります。

まず、すべてのシリアライザをシリアル化するオブジェクトごとにIDチェックを実行しなければならないため、パフォーマンスの低下があります。

第2に、DataContractJsonSerializerは、IsReference属性でマークされたオブジェクトをシリアル化できません。したがって、XmlとJsonの両方をサポートする必要がある場合は、それを使用することはできません。

これら以外には、私はそれを使用しない理由はありません。結局それはいくつかの貴重な帯域幅を節約します!

+5

JSON.NetはIsReference = trueを処理できますが。 http://dotnet.learningtree.com/2012/04/03/working-with-the-entity-framework-and-the-web-api/ –

関連する問題