Как заставить Подклассы сериализовать родительское значение по-другому, используя 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 ответ

Просто разобрался. Я могу сделать maker абстрактной строкой и реализовать ее с разными переменными поддержки для каждой, а затем пометить нужную переменную.

Другие вопросы по тегам