2
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?

watbywbarif
  • 6,487
  • 8
  • 50
  • 64

1 Answers1

3

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
    }
}
Thomas Levesque
  • 286,951
  • 70
  • 623
  • 758