Название может быть длинным, позвольте мне объяснить, что я имею в виду. Я не буду давать вам реальный XML, с которым мне нужно работать, но я дам тот, который демонстрирует проблему, с которой я столкнулся.
У меня есть XML, который выглядит так:
<root>
<creatures>
<creature type="mammal" name="lion">
<sound>roarr</sound>
</creature>
<creature type="bird" name="parrot">
<color>red</color>
</creature>
</creatures>
</root>
Представьте себе следующие классы:
(Конечно, это и не мои настоящие классы, но вы поняли.)
public class Creature
{
public string Name { get; set; }
}
public class MammalCreature : Creature
{
public string Sound { get; set; }
}
public class BirdCreature : Creature
{
public string Color { get; set; }
}
Я хотел бы использовать сериализацию XML с атрибутами таким образом, чтобы сериализатор различал типы MammalCreature
и BirdCreature
по атрибуту type
.
Я нашел решения, которые могут сделать это, установив для атрибута xsi:type
имя типа, которое я хочу, но я хотел бы знать, есть ли реальное решение, которое делает это для моего случая.