如何使用XmlSerializer以不同方式序列化父值

时间:2016-11-26 03:11:27

标签: c# serialization xml-serialization xmlserializer

说我有以下类结构

abstract class Vehicle
{
    string maker;
}

class Car : Vehicle
{
    bool automatic;
}

class Motorcycle : Vehicle
{
    string style;
}

class Bicycle : Vehicle
{
    // no extra attributes
}

并希望序列化/反序列化为此表单:

<vehicles>
    <car maker="BMW">
        <automatic>false</automatic>
    </car>
    <motorcycle>
        <maker>Harley Davidson</maker>
        <style>Cruiser</style>
    </motorcycle>
    <bicycle>Huffy</bicycle>
</vehicles>

有没有办法告诉XML序列化程序在每种情况下应该如何序列化maker,还是需要将maker变量向下移动到其子类中?

1 个答案:

答案 0 :(得分:0)

刚想通了。我可以使制造商成为一个抽象字符串并使用不同的后备变量为每个字符串实现它,然后根据需要标记后备变量。