所以,我的实体类(用C#编写)遵循一个父子模型,其中每个子对象都必须有一个Parent属性,并在其中保持其父对象的引用。是否可以使用循环引用来执行序列化?
由于循环引用,此Parent属性导致对象序列化中的问题。
我不能删除提及父母,无论是我可以将其标记XmlIgnore(因为我需要阅读它回来时,我反序列化XML)
在这个任何想法?
所以,我的实体类(用C#编写)遵循一个父子模型,其中每个子对象都必须有一个Parent属性,并在其中保持其父对象的引用。是否可以使用循环引用来执行序列化?
由于循环引用,此Parent属性导致对象序列化中的问题。
我不能删除提及父母,无论是我可以将其标记XmlIgnore(因为我需要阅读它回来时,我反序列化XML)
在这个任何想法?
XML序列化不支持循环引用,您需要使用XmlIgnore
属性从序列化中排除父属性。当您反序列化时,请参阅this blog post以维护关系。可以使用DataContractSerializer
而不是XmlSerializer
。它支持循环引用,但不能提供对XML模式的太多控制...
您可以创建自己的XMLSerializer
或使用DataContractSerializer
和[DataContract(
IsReference
= true)]
属性告诉串行记住引用。
感谢您的回应,任何带有一段代码的示例都会增加更多帮助。 :) – 2011-02-15 13:50:51
不错的博客文章。尝试你的榜样。 – 2011-02-15 14:01:20