是否可以使用循环引用执行序列化?

Arp*_*wal 14 c# serialization circular-reference

因此,我的实体类(用C#编写)遵循父子模型,其中每个子对象必须具有Parent属性,在该属性中它保持对其Parent的引用.

由于循环引用,此Parent属性导致Object序列化的问题.

我无法删除对父级的引用,也不能将其标记为XmlIgnore(因为我在反序列化XML时需要将其读回)

有什么想法吗?

Tho*_*que 12

XML序列化不支持循环引用,您需要使用该XmlIgnore属性从序列化中排除父属性.有关在反序列化时维护关系的方法,请参阅此博客文章.

或者,您可以使用DataContractSerializer而不是XmlSerializer.它支持循环引用,但不能提供对XML模式的很多控制......


Yur*_*ich 11

您可以创建自己的XMLSerializer或使用DataContractSerializer和属性来告诉序列化程序记住引用.[DataContract(IsReference= true)]