假设我有一个包含IComponent
接口实例的容器。然后我有许多实现此接口的类,例如ComponentA
,ComponentB
,...,ComponentY
和ComponentZ
。现在我想使用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;
}
但这是不灵活的 - 我不想为每个派生类型做这件事,对于许多派生类型来说真的很痛苦。有没有办法在不指定所有派生类型的情况下做到这一点?