Sté*_*ane 14 wcf datacontract datacontractserializer
我理解什么是属性IsReference以及它正在做什么.但我不明白为什么/当我应该不使用它.什么时候使用IsReference = true是个坏主意?
如果我的wcf服务是.net到.net,是否有充分的理由不设置IsReference = true?
Run*_*tad 11
避免使用IsReference至少有两个原因:
首先是性能损失,因为所有序列化器必须对要序列化的每个对象执行身份检查.
其次,DataContractJsonSerializer无法序列化标记有IsReference属性的对象.因此,如果您需要同时支持Xml和Json,则无法使用它.
除此之外,我认为没有任何理由不使用它.毕竟它确实节省了一些宝贵的带宽!
我认为不应该发生任何不好的事情。如果您的图表包含多个指向同一对象实例的链接,则将此属性设置为 true 将减少 XML 大小。
http://zamd.net/2008/05/20/datacontract-serializer-and-isreference-property/
但是我不确定为什么默认情况下不启用它。