因此,我的实体类(用C#编写)遵循父子模型,其中每个子对象必须具有Parent属性,在该属性中它保持对其Parent的引用。
由于循环引用,此Parent属性导致Object序列化的问题。
我无法删除对父级的引用,也不能将其标记为XmlIgnore(因为我需要在反序列化XML时将其读回)
有关于此的任何想法吗?
答案 0 :(得分:11)
您可以创建自己的XMLSerializer
,也可以使用DataContractSerializer
和[DataContract(
IsReference
= true)]
属性告诉序列化程序记住引用。< / p>
答案 1 :(得分:11)
XML序列化不支持循环引用,您需要使用XmlIgnore
属性从序列化中排除父属性。有关在反序列化时维护关系的方法,请参阅this blog post。
或者,您可以使用DataContractSerializer
代替XmlSerializer
。它支持循环引用,但不能提供对XML模式的很多控制......