我正在尝试调试xml序列化。在xml序列化期间,序列化程序“检测到循环引用”。我想找到它并摆脱它。我可以使用一些方便的工具/方法吗?
答案 0 :(得分:2)
通常手动检查非常明显......
你可能会尝试序列化到一个文件,只看一下文件的结尾 - 显然它不是完整的XML,但它应该给出一个线索。
请注意DataContractSerializer
能够(通过启用选项)序列化完整图表,但它的XML选项少于XmlSerializer
- 并且图形模式甚至更少类似于XML; IMO去除循环是优选的。通常这只是一个例子:
[XmlIgnore]
public Person Parent {get;set;}
(即仅序列化“向下”参考)
答案 1 :(得分:0)
$normalizers->setCircularReferenceHandler(function ($object) {
return $object->getId();
});