class A : IXmlSerializable
{ ...
}
class B : A
{
public string X;
}
当我序列化 B 类型的对象时,只有 A 被序列化。如何以最小的努力包含 X?
最佳答案
您正在实现 IXmlSerialized 的事实使其变得有点困难......
您可以做的是将 WriteXml
和 ReadXml
设为虚拟,并在派生类中重写它们:
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
}
}
关于c# - XML 序列化和继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4439395/