我理解属性属性IsReference是什么以及它正在做什么。但是我不明白为什么/什么时候我应该而不是使用它。什么时候使用IsReference=true是个坏主意?
如果我的wcf服务是.net to .net,那么而不是 set IsReference=true有充分的理由吗?
发布于 2012-05-07 08:21:11
避免使用IsReference至少有两个原因:
首先,存在性能损失,因为所有序列化程序都必须对要序列化的每个对象执行标识检查。
其次,DataContractJsonSerializer不能序列化使用IsReference属性标记的对象。因此,如果需要同时支持Xml和Json,那么就不能使用它。
除此之外,我看不出有什么理由不使用它。毕竟,它确实节省了一些宝贵的带宽!
发布于 2012-01-17 15:29:20
我认为不应该发生什么坏事。如果图形包含多个指向同一个对象实例的链接,则将此属性设置为true将减少XML大小。
http://zamd.net/2008/05/20/datacontract-serializer-and-isreference-property/
但是,我不知道为什么默认情况下没有启用它。
https://stackoverflow.com/questions/8876745
复制相似问题