List <icomponent>的Xml序列化,不指定所有派生类型</icomponent>

时间:2014-02-22 19:59:36

标签: c# xml serialization xml-serialization derived-class

假设我有一个包含IComponent接口实例的容器。然后我有许多实现此接口的类,例如ComponentAComponentB,...,ComponentYComponentZ。现在我想使用Xml序列化对所有派生类型进行de / serialize。我知道可以使用XmlArrayItem列出所有派生类:

public class Xyz
{
    [XmlArray("Array")]
    [XmlArrayItem(typeof(ComponentA))]
    [XmlArrayItem(typeof(ComponentB))]
    // ... others
    [XmlArrayItem(typeof(ComponentY))]
    [XmlArrayItem(typeof(ComponentZ))]
    public List<IComponent> Components;
}

但这是不灵活的 - 我不想为每个派生类型做这件事,对于许多派生类型来说真的很痛苦。有没有办法在不指定所有派生类型的情况下做到这一点?

0 个答案:

没有答案