c# - .NET XML 序列化和继承

标签 c# inheritance serialization xml-serialization

我有这样的结构:

public interface A
{
    public void method();
}

public class B : A
{
}

public class C : A
{
}

List<A> list;

List 包含类型 B 和 C 的对象,它们也有一些我想保留的字段,我现在可以序列化它,反序列化回来并获得正确的对象实例吗? 最好是 XML

编辑:

有什么简单的方法可以序列化这个包含接口(interface)的列表,然后反序列化回 B 和 C 实例吗?

最佳答案

假设您正在使用内置的 .net XML 序列化,您应该查看以下属性:

System.Xml.Serialization.XmlIncludeAttribute

它允许您指示序列化程序在序列化/反序列化时包含其他类型。

向列表中添加新类型而不更新序列化元数据是常见的错误来源,请确保您有足够的测试覆盖率。

关于c# - .NET XML 序列化和继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1708924/

相关文章:

java - 父类中的构造函数父级不能应用于给定类型错误

java - 继承泛型

c# - 如何将弱类型 JSON 转换为 C# 可读对象

c# - 使用 SecureString 进行配置真的安全吗?

c# - Entity Framework - 在程序集中找不到迁移配置类型

java - 我如何找到扩展类的方法在哪里

java - Java中的部分反序列化和序列化?

c# - 在 C# 中没 Root过的 XmlSerialisation

c# - C# 中是否有任何存储优化的稀疏矩阵实现?

c# - 在 MS Teams channel 中发布时,聊天机器人名称包含在用户话语中,从而向 LUIS 提供了不正确的话语