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

c#使用动态设置动态表达式?,c#,dynamic,C#,Dynamic,我对dynamic关键字不太熟悉,一直在研究它,因为我想用它来解析xml。我遇到了一个用作测试的示例: 在示例中,它们显示: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"); 我查看了一个

我对dynamic关键字不太熟悉,一直在研究它,因为我想用它来解析xml。我遇到了一个用作测试的示例:

在示例中,它们显示:
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");
我查看了一个评估来做类似的事情,或者查看了一些反思,但很好奇是否有更好的方法。任何建议、帮助或简单的拒绝都将不胜感激。

接受一个属性字符串并动态调用它们。这更像是一种反射式的方式(尽管比反射更容易、更快,并且适用于动态对象)

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

获取一个属性字符串并动态调用它们。这更像是一种反射式的方式(尽管比反射更容易、更快,并且可以处理动态对象


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

您是否尝试以字符串形式执行代码?换句话说,类似Javascript eval()方法的代码作为数据方法?@Sean Thoman:不完全是。我已经创建了动态对象(编译,并在运行时执行),我只是希望能够在运行时在我的动态对象上使用不同的动态表达式。我会发现这对xml非常有帮助,因此我可以使用任何xml模式,并能够使用相同的代码对其进行解析。最终,如果这是可行的,我会将解析后的xml值传递到另一个类进行进一步处理。如果在不管怎样,我对这个概念的术语是模糊的。我认为XPath之类的东西更适合于您正在尝试完成的任务。它是一种XML查询语言,其中有一个XPath表达式字符串,可用于选择任意XML结构中的节点。@Stefan,我同意,总的来说,我只是在尝试新的东西,并希望在体验中使用这个动态关键字,但我熟悉xpath,以前也使用过它,所以我可能会再次尝试这个方向。我可能会保持开放状态,看看其他人是否也有想法。感谢您的回复!您是否尝试以字符串形式执行代码?换句话说,像Javascript eva这样的代码作为数据方法l()方法?@Sean Thoman:不完全是。我已经创建了动态对象(编译并在运行时执行),我只是希望能够在运行时在我的动态对象上使用不同的动态表达式。我会发现这对xml非常有帮助,因此我可以使用任何xml模式,并能够使用相同的代码对其进行解析。最终,如果这是可行的,我会将解析后的xml值传递到另一个类进行进一步处理。如果在不管怎样,我对这个概念的术语是模糊的。我认为XPath之类的东西更适合于您正在尝试完成的任务。它是一种XML查询语言,其中有一个XPath表达式字符串,可用于选择任意XML结构中的节点。@Stefan,我同意,总的来说,我只是在尝试新的东西,并希望在体验中使用这个动态关键字,但我熟悉xpath,以前也使用过它,所以我可能会再次使用它。我可能会保持这个开放状态,只是为了看看其他人是否也有想法。谢谢您的回复!