【发布时间】:2012-05-16 18:01:11
【问题描述】:
使用数据协定序列化对象时,我遇到了循环引用的问题。我知道使用 IsReference=true 但我不能使用它,因为我是从我无法控制的对象继承的。有什么办法可以绕行,我可以算个时间然后退出,比如休息一下吗?
【问题讨论】:
标签: c# xml-serialization
使用数据协定序列化对象时,我遇到了循环引用的问题。我知道使用 IsReference=true 但我不能使用它,因为我是从我无法控制的对象继承的。有什么办法可以绕行,我可以算个时间然后退出,比如休息一下吗?
【问题讨论】:
标签: c# xml-serialization
按照此处的建议实施自定义 DataContractSerializerBehavior:Circular References and WCF 我认为应该修复它吗?
为非 WCF 更新:
链接答案中的解决方案基于使用:
new DataContractSerializer(type, name, ns, knownTypes,
0x7FFF //maxItemsInObjectGraph,
false //ignoreExtensionDataObject,
**true** //preserveObjectReferences,
null //dataContractSurrogate);
我认为使用这个构造函数应该可以解决它。
【讨论】:
你可以使用 WeakReferences 吗?
http://msdn.microsoft.com/pt-br/library/system.weakreference.aspx
【讨论】: