c# - XML 序列化和继承

标签 c# .net xml-serialization

class A : IXmlSerializable
{     ...
}

class B : A
{
   public string X;
}

当我序列化 B 类型的对象时,只有 A 被序列化。如何以最小的努力包含 X?

最佳答案

您正在实现 IXmlSerialized 的事实使其变得有点困难......

您可以做的是将 WriteXmlReadXml 设为虚拟,并在派生类中重写它们:

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/

相关文章:

c# - 获取用于 PFI 分析的 BinaryClassification FastTree FeatureNames

c# - 基于云pubsub运行c#示例项目时的依赖问题

c# - Xamarin 无法访问隐藏代码的控件

c# - 有没有办法在调试 C# 程序时使用 F# 交互模式?

c# - 由于缺少 XSD 文件,无法反序列化 xml 文档

c# - Asp.net Web Api 作为 Api 网关

C# 将项目列表添加到按字符串排序的组合框不自然

java - 为 XML 持久性选择框架

c# - AVX2 SIMD XOR 在 .NET 中没有产生性能改进

java - POJO 到 Google App Engine 中的 XML 字符串?