Десериализация унаследованных типов без явного атрибута XmlArrayItem - PullRequest
2 голосов
/ 10 марта 2010

У меня есть XML-документ, который выглядит следующим образом:

<MyEntity>
    <Vehicles>
        <Car />
        <Truck />
    </Vehicles>
</MyEntity>

Я хочу десериализовать его в следующую структуру:

public class MyEntity
{
    public Vehicle[] Vehicles { get; set; }
}

public class Vehicle {}
public class Car : Vehicle {}
public class Truck : Vehicle {}

Возможно ли сделать это без необходимости украшать свойство MyEntity.Vehicles атрибутом XmlArrayItem для каждого возможного типа транспортного средства? Я могу получить новые типы транспортных средств, о которых я не знаю во время компиляции, но которые можно обнаружить во время выполнения.

1 Ответ

0 голосов
/ 31 января 2011

Единственным способом, который я могу придумать, если не считать добавления атрибутов, является реализация IXmlSerializer в MyEntity и обработка его вручную. Конечно, вам также понадобится зарегистрировать обработчики для разных типов транспортных средств.

...