4
我是C#的新手,想问一些解决以下问题的方向。使用动态或Reflection.emit
我有一个xml文件用作模板(事先不知道它的内容)。像这样:
<Object>
<Property name="ID">
<Value weight="40">10000</Value>
<Value weight="60">20000</Value>
</Property>
<Property name="Name">
<Value weight="">foo</Value>
<Value weight="">bar</Value>
</Property>
<Property name="Department">
<SubProperty name="Department_ID">
<Value weight="20">D01</Value>
<Value weight="80">D02</Value>
</SubProperty>
<SubProperty name="Location">
<Value weight="30">F01</Value>
<Value weight="70">F02</Value>
</SubProperty>
</Property>
</Object>
我想读它,做一些洗牌,并导出到一个新的XML文件。比方说,根据它们的权重(百分比)随机获取每个属性的值,以创建混合属性对象的新列表,然后将其序列化为新的xml文件。
这是使用Reflection.Emit在运行时创建一个新的“类”吗?或者是否有任何新功能,例如我可以使用的C#4.0的DynamicObject?
任何意见/样本表示赞赏,谢谢!
感谢您的评论。 我曾尝试使用LINQ,虽然它运行良好,但代码将随着模板中属性的增长而单独增加。 所以我只是想知道是否有一些动态/强大的方法来解决这个问题,即使我改变了模板的全部属性名称。 谢谢 – Gnavvy 2010-07-11 13:11:28
我的想法是对数据使用查询优先的方法来查看你有什么,然后可能建立一个属性名称查找表,你可以用它来访问特定的节点... – codekaizen 2010-07-11 16:59:05