gpt4 book ai didi

c# - 序列化派生类不包括基类的字段

转载 作者:太空宇宙 更新时间:2023-11-03 15:36:51 26 4
gpt4 key购买 nike

假设我的 C# 程序中有以下 2 个类:

[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);
}

但它并没有拉入 Base字段 - str1 , str2str3在输出中。

我对此很陌生,希望这应该很容易/只需要向序列化程序添加一个额外的输入(我尝试添加额外的 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));

关于c# - 序列化派生类不包括基类的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31616803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com