Попытка десериализации файла XML из стороннего инструмента в пользовательский класс программного обеспечения. Проблема в том, что XML немного глуповат, поскольку «корневой» элемент действительно является объявлением коллекции. Я много сделал с XMLArray и другими определениями для определения сериализации, но это, похоже, не работает. Лучшее, что я смог сделать - это прочитать коллекцию, но ни один из объектов в коллекции не был инициализирован переменными.
Вот пример того, с чем я сталкиваюсь:
XML:
<Animals>
<Animal>
<Name>Mr. Cow</Name>
<Type>Cow</Type>
</Animal>
<Animal>
<Name>Belle</Name>
<Type>Cow</Type>
</Animal>
<Animal>
<Name>Porky</Name>
<Type>Pig</Type>
</Animal>
</Animals>
Затем мой объект XMLRoot определен как «Животные» в моем объекте «Ферма». И есть список свойств для моего класса "Животное". Если я определю это свойство (список AnimalCollection), то лучшее, что я смогу получить, - это список из 3 неинициированных объектов Animal (ни одно из установленных значений).
В офисе лучше всего было бы добавить узел в файл в виде потока, прежде чем пытаться десериализовать его и использовать его в обычном режиме, но, очевидно, это выглядит как ужасный хак. Надеюсь, что есть лучший способ, который я просто скучаю.
Я тоже думал о ручном чтении документа ... но снова надеялся, что есть более элегантный способ.