序列化派生类不包括基类;字段

本文关键字:字段 基类 不包括 派生 序列化 | 更新日期: 2023-09-27 18:04:45

假设我的c#程序中有以下两个类:

[Serializable]
public class Base
{
    public string str1;
    public string str2;
    public string str3;
}
[Serializable]
public class  Derived : Base
{
    public string str4;
    public string str5;
}

并且,在我的程序中,我试图通过:

List<Derived>序列化为XML:
List<Derived> ToSerialize;
string path;
...
var ser = new XmlSerializer(typeof(List<Derived>));
using (var fs = new FileStream(path, FileMode.Create))
{
    ser.Serialize(fs, ToSerialize);
}

但输出str1str2str3Base字段不拉入。

我对此相当陌生,希望这应该很容易/只需要向序列化器添加一个额外的输入(我尝试添加额外的Base类型,但仍然没有运气),但我只是无法弄清楚。

任何帮助都将非常感激!!

谢谢!

序列化派生类不包括基类;字段

[XmlInclude(typeof(Derived))]
[Serializable]
public class Base
{
    public string str1;
    public string str2;
    public string str3;
}
[Serializable]
public class  Derived : Base
{
    public string str4;
    public string str5;
}
....
var ser = new XmlSerializer(typeof(Base));