我有一个动态XML结构。我的意思是,可以更改根名称,可以更改元素名称,并且可以更改xml的结构。那么如何将动态xml反序列化为对象?
通过xml元素名称动态创建类,这可能吗?如果是,那我该怎么办?
答案 0 :(得分:2)
答案 1 :(得分:1)
如果您使用的是.Net 4,ExpandoObject可能就是您所需要的:
表示一个对象,其成员可以在运行时动态添加和删除。
答案 2 :(得分:1)
您想查看factory pattern。基本思路是:
for each XML node, get the type name / name of node
ask factory for type with given name
create object of the given type
pass the XML node to object to allow it to load its data
XSD架构可帮助验证XML在结构上是否正确,尽管不是必需的。我曾经尝试过一次,从XML创建对象,但是我从来没有找到过为一个XML创建多个模式文件的方法(如果你看到我的意思,这将允许我在不改变根模式的情况下扩展模式)。 / p>