2011-02-15 54 views
12

所以,我的实体类(用C#编写)遵循一个父子模型,其中每个子对象都必须有一个Parent属性,并在其中保持其父对象的引用。是否可以使用循环引用来执行序列化?

由于循环引用,此Parent属性导致对象序列化中的问题。

我不能删除提及父母,无论是我可以将其标记XmlIgnore(因为我需要阅读它回来时,我反序列化XML)

在这个任何想法?

回答

11

XML序列化不支持循环引用,您需要使用XmlIgnore属性从序列化中排除父属性。当您反序列化时,请参阅this blog post以维护关系。可以使用DataContractSerializer而不是XmlSerializer。它支持循环引用,但不能提供对XML模式的太多控制...

+0

不错的博客文章。尝试你的榜样。 – 2011-02-15 14:01:20

11

您可以创建自己的XMLSerializer或使用DataContractSerializer[DataContract(IsReference= true)]属性告诉串行记住引用。

+1

感谢您的回应,任何带有一段代码的示例都会增加更多帮助。 :) – 2011-02-15 13:50:51

相关问题