问题
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