<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属性的情况下执行此操作?我可能会得到新的类型的车辆,我不知道在编译时,但可以在运行时发现。
除了添加属性之外,我能想到的唯一方法是在MyEntity上实现IXmlSerializer并手动处理它。当然,您还需要为不同的车辆类型注册处理程序。