在没有显式XmlArrayItem属性的情况下反序列化继承的类型

时间:2010-03-10 04:12:12

标签: .net xml-serialization

我有一个XML文档,如下所示:

<MyEntity>
    <Vehicles>
        <Car />
        <Truck />
    </Vehicles>
</MyEntity>

我想将其反序列化为以下结构:

public class MyEntity
{
    public Vehicle[] Vehicles { get; set; }
}

public class Vehicle {}
public class Car : Vehicle {}
public class Truck : Vehicle {}

是否可以在不必为每种可能的车辆类型使用XmlArrayItem属性装饰MyEntity.Vehicles属性的情况下执行此操作?我可能会在编译时获得我不了解的新型车辆,但在运行时可以发现。

1 个答案:

答案 0 :(得分:0)

除了添加属性之外,我能想到的唯一方法是在MyEntity上实现IXmlSerializer并手动处理它。当然,您还需要为不同的车辆类型注册处理程序。