c#动态设置动态表达式?

时间:2011-09-28 16:06:22

标签: c# dynamic

我是动态关键字的新手,并且一直在研究它,因为我想用它来解析xml。我遇到了这个我用作测试的例子:http://blogs.captechconsulting.com/blog/kevin-hazzard/fluent-xml-parsing-using-cs-dynamic-type-part-1

在示例中,它们显示:dx.book[2].authors.author[0].name.last.Value,我想知道是否有可能以某种方式从字符串或数据库值构建动态表达式?

psuedo示例:

dynamic dx = new DynamicXml(xml);
Console.WriteLine("dx.book[2].authors.author[0].name.last.Value");

我调查EVAL做这样的事情,或者以某种方式研究反思,但好奇是否有更好的方法。任何建议或帮助,或简单的不会非常感激。

1 个答案:

答案 0 :(得分:1)

InvokeGetChain接受一串属性并动态调用它们。它更像是一种反射式的方式(虽然比反射更容易,更快,并且可以与动态对象一起使用。

它位于ImpromptuInterface开源项目中(通过nuget)。从v6.0开始,它确实以上面的确切格式解析索引器,不包括目标对象。