Reputation: 6987
class A : IXmlSerializable
{ ...
}
class B : A
{
public string X;
}
When i serialize object of type B, only A is serialized. How can I include X with minimum effort?
Upvotes: 2
Views: 416
Reputation: 292425
The fact you're implementing IXmlSerializable makes it a bit harder...
What you could do is make WriteXml
and ReadXml
virtual, and override them in your derived class:
public class A : IXmlSerializable
{
public virtual void WriteXml (XmlWriter writer)
{
// Serialize A members
}
public virtual void ReadXml (XmlReader reader)
{
// Deserialize A members
}
public XmlSchema GetSchema()
{
return(null);
}
}
public class B : A
{
public override void WriteXml (XmlWriter writer)
{
base.WriteXml(writer);
// Serialize B members
}
public virtual void ReadXml (XmlReader reader)
{
base.ReadXml(reader);
// Deserialize B members
}
}
Upvotes: 3