如何在xml序列化期间找到循环引用?

时间:2011-03-12 18:06:36

标签: c# xml-serialization

我正在尝试调试xml序列化。在xml序列化期间,序列化程序“检测到循环引用”。我想找到它并摆脱它。我可以使用一些方便的工具/方法吗?

2 个答案:

答案 0 :(得分:2)

通常手动检查非常明显......

你可能会尝试序列化到一个文件,只看一下文件的结尾 - 显然它不是完整的XML,但它应该给出一个线索。

请注意DataContractSerializer能够(通过启用选项)序列化完整图表,但它的XML选项少于XmlSerializer - 并且图形模式甚至更少类似于XML; IMO去除循环是优选的。通常这只是一个例子:

[XmlIgnore]
public Person Parent {get;set;}

(即仅序列化“向下”参考)

答案 1 :(得分:0)

$normalizers->setCircularReferenceHandler(function ($object) {
    return $object->getId();
});