将收到的xml反序列化为C#对象

时间:2012-03-14 13:06:16

标签: c#-4.0 xml-serialization

我正在编写一个将接收XML数据包的应用程序。我已经尝试在C#中创建一个对象来反序列化收到的XML,它工作正常。我注意到,如果类名与XML数据包中的根元素名称不同,则对该类的反序列化将不起作用。我在网上搜索了一个简单的应用程序,甚至不知道是否可能,但我的问题是:如何根据收到的XML包在C#中自动创建一个类?这可能吗?或者接近这个场景的东西,我可以解决,以防根元素名称与类名称不同。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您是否尝试过RootNode属性以更改名称?

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

根据您的评论:

您无法在运行时创建强类型类。

您是否考虑过使用 LINQ to XML 而不是XML序列化?这可能更适合您(动态)的需求。您仍然可以保留您的类,只需通过LINQ to XML表达式填充它,而不是直接反序列化。

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