Десериализовать полученный XML в объект C # - PullRequest
0 голосов
/ 14 марта 2012

Я пишу приложение, которое получит пакет XML.Я попытался создать объект в C # для десериализации полученного XML, и он отлично работает.Я заметил, что если имя класса не совпадает с именем корневого элемента в пакете XML, десериализация в этот класс не будет работать.Я искал во всем Интернете простое приложение, даже не знаю, возможно ли это, но у меня вопрос: как автоматически создать класс в C # на основе полученного пакета XML?Это возможно?или что-то близкое к этому сценарию, которое я могу обойти, если имя корневого элемента отличается от имени класса.любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 14 марта 2012

Вы пробовали атрибут RootNode для изменения имени?

[XmlRoot("RootNodeName")]
public class MyClass {...}

На основании вашего комментария:

Вы не можете создать строго типизированный класс во время выполнения.

Вы рассматривали возможность использования LINQ to XML вместо сериализации XML?Это может лучше соответствовать вашим (динамическим) потребностям.Вы все еще можете сохранить свой класс, просто заполните его через выражения LINQ to XML вместо прямой десериализации.

http://msdn.microsoft.com/en-us/library/bb387098.aspx

...