序列化派生类不包括基类;字段
本文关键字:字段 基类 不包括 派生 序列化 | 更新日期: 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);
}
但输出str1
、str2
、str3
的Base
字段不拉入。
我对此相当陌生,希望这应该很容易/只需要向序列化器添加一个额外的输入(我尝试添加额外的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));