【发布时间】:2019-08-27 04:33:07
【问题描述】:
我有一个名为 VehicleInfo 的 XML 文件。 我想反序列化车辆列表中的 VehicleInfo。 现在我有一个名为 Vehicle 的基类和三个名为 Car、Bike、Truck 的派生类。 如何根据xml中车辆节点的值反序列化车辆的特定对象。 (例如,如果节点值为 Car,则 car 的对象应存储在车辆列表中)
<Vehicles>
<Vehicle>Car</Vehicle>
<Vehicle>Bike</Vehicle>
<Vehicle>Truck</Vehicle>
</Vehicles>
例如,
VehicleList 类:
public class VehicleList
{
List<Vehicle> lstVehicles = new List<Vehicle>();
}
车辆类别:
public class Vehicle
{
public string name = "Vehicle";
}
汽车类:
public class Car : Vehicle
{
public Car()
{
name = "Car";
}
}
自行车课:
public class Bike : Vehicle
{
public Bike()
{
name = "Bike";
}
}
卡车类:
public class Truck : Vehicle
{
public Truck()
{
name = "Truck";
}
}
此车辆程序只是示例,
那么,如何根据节点 Vehicle 的值反序列化 VehicleList 类中车辆列表中的特定对象(例如汽车、自行车或卡车)。
【问题讨论】:
-
在反序列化之前制作样本并序列化以查看结构。您需要使用 Include 属性。见:
-
嗨,欢迎来到 SO!为了获得帮助,也请提供您的类的结构。基类和子类(至少它们的一些基本字段)
-
你尝试了什么?
标签: c# deserialization