首页 文章

何时/为什么我不应该在我的DataContracts上使用IsReference = true?

提问于
浏览
14

我理解什么是属性IsReference以及它正在做什么 . 但我不明白为什么/什么时候我应该 not 使用它 . 什么时候使用IsReference = true是个坏主意?

如果我的wcf服务是.net到.net,是否有充分理由 not 设置IsReference = true?

2 回答

  • 1

    避免使用IsReference至少有两个原因:

    首先是性能损失,因为所有序列化程序必须对要序列化的每个对象执行身份检查 .

    其次,DataContractJsonSerializer无法序列化标记有IsReference属性的对象 . 因此,如果您需要同时支持Xml和Json,则无法使用它 .

    除此之外,我认为没有任何理由不使用它 . 毕竟它确实节省了一些宝贵的带宽!

  • 11

    我认为不应该发生任何不好的事情 . 如果图形包含指向同一对象实例的多个链接,则将此属性设置为true将减小XML大小 .

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

    但是我不确定为什么默认情况下不启用它 .

相关问题