我有这样的结构:
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/