Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Десериализация из XmlNode


Автор: mihryak 10.6.2007, 22:13
Есть Xml-представление некого класса (XmlNode). Как можно с помощью XmlSerializer получить соответствующий экземпляр этого класса?
Пробовал колдовать с XmlWriter/XmlReader, получать строковое представление XmlNode, через Encoding пребразовывать к byte[], складывать эти байты в MemoryStream и подсовывать полученный поток XmlSerializer'у.
Самое большое достижение - ошибка о некорректном Xml-документе в разных позициях (0,0; 0,20 и т.д.) smile
Ручной парсер в данному случае писать не хотелось бы, т.к. класс довольно сложный и иерархический без ограничений на вложенность, со сложным наследованием. К тому же, время от времени добаляются/убраются новые поля, так что придётся ещё не забывать измениять парсер.
Рефлексия могла бы помочь, но, по сути, XmlSerializer именно так и работает, так что придётся изобретать велосипед.
Итак, вопрос smile Можно ли (и если "да" - то как), имея XmlNode, создать класс, используя XmlSerializer?

Автор: Exception 11.6.2007, 01:25
Код
MyObject obj = serializer.Deserialize (new XmlNodeReader (node)) as MyObject;

http://www.google.com/search?q=deserialize+from+xmlnode... (с)

Автор: mihryak 11.6.2007, 12:22
как-то я упустил XmlNodeReader, да и у гугла по-другому спрашивал  smile 
спасибо smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)