【发布时间】:2016-10-03 18:43:13
【问题描述】:
我有一个具有定义为接口的属性的类。 我的类的用户可以将任何实现该接口的类实现分配给该属性。 我希望能够从磁盘上的文本文件加载此类状态。用户应该能够手动修改xml文件,以控制应用程序的运行。
如果我尝试序列化我的类,它会告诉我我无法序列化接口。 我知道序列化器不知道属性类的结构,只知道它实现了一个接口。
我本来希望它在成员上调用 GetType,并反映到实际类的结构中。有没有办法做到这一点? 还有其他方法可以实现我的要求吗?
编辑:澄清我的意图: 假设我有这个课程:
class Car
{
IEngine engine
}
class ElectricEngine : IEngine
{
int batteryPrecentageLeft;
}
class InternalCombustionEngine : IEngine
{
int gasLitersLeft;
}
并且班级用户有一个班级
Car myCar = new Car();
myCar.Engine = new ElectricEngine() {batteryPrecentageLeft= 70};
当我序列化 myCar 类时,我希望 xml 类似于:
<Car>
<Engine>
<ElectricEngine>
<batteryPrecentageLeft>70</batteryPrecentageLeft>
</ElectricEngine>
<Engine>
</Car>
【问题讨论】:
标签: c# .net xml-serialization