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