I'm currently using an XMLSerializer
to serialize a list of a class of my own. One of the class's properties is an instance of a sealed class that does not have a parameterless constructor, so the XML Serializer refuses to serialize the class. How can I get around this? I need that property to be serialized.
Is there some way for me to specify how that class should be serialized?
We'd like to stay with XML; is there another XML serializer that I could use that would not have this problem?
Again, I apologize if this is a dupe, but I had no idea what to search.
[EDIT] To clarify, I don't have access to the source of the sealed class.
It's not possible to do directly; XmlSerializer
can't cope with classes that don't have a parameterless constructor.
What I normally do is wrap the parameterless class in another class that's compatible with XML. The wrapper class has a parameterless constructor and a set of read-write properties; it has a FromXml
method that calls the real class's constructor.
[XmlIgnore]
public SomeClass SomeProperty { get; set; }
[XmlElement("SomeProperty")]
public XmlSomeClass XmlSomeProperty
{
get { return XmlSomeClass.ToXml(SomeProperty); }
set { SomeProperty = value.FromXml(); }
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With