问题
So, my entity class (written in C#) follows a parent child model where every child object must have a Parent property in which it keeps reference of its Parent.
This Parent property causes issues in serialization of the Object due to circular references.
I can't remove the reference to parent, neither I can mark it XmlIgnore (since I need to read it back when I deserialize the XML)
Any ideas on this?
回答1:
XML serialization doesn't support circular references, you need to exclude the parent property from the serialization using the XmlIgnore attribute. See this blog post for a way to maintain the relationship when you deserialize.
Alternatively, you could use DataContractSerializer instead of XmlSerializer. It supports circular references, but doesn't provide much control over the XML schema...
回答2:
You can either create your own XMLSerializer or use the DataContractSerializer and the [DataContract(IsReference= true)] attribute to tell the serializer to remember the references.
来源:https://stackoverflow.com/questions/5004397/is-it-possible-to-perform-serialization-with-circular-references