0

当使用数据契约序列化一个对象时,我遇到了循环引用的问题。我知道使用 IsReference=true 但我不能使用它,因为我是从我无法控制的对象继承的。有什么办法可以绕过,我可以数一下然后退出,比如休息一下吗?

4

2 回答 2

1

按照此处的建议实施自定义 DataContractSerializerBehavior:我认为Circular References and WCF should fix it?

为非 WCF 更新:

链接答案中的解决方案基于使用:

new DataContractSerializer(type, name, ns, knownTypes,
                          0x7FFF //maxItemsInObjectGraph,
                          false //ignoreExtensionDataObject,
                          **true** //preserveObjectReferences,
                          null //dataContractSurrogate);

我认为使用这个构造函数应该可以解决它。

于 2012-05-16T18:32:14.643 回答
-2

你可以使用弱引用吗?

http://msdn.microsoft.com/pt-br/library/system.weakreference.aspx

于 2012-05-16T18:06:21.073 回答