使用带reflection的XPath样式查询

我有一个类树,它包含层次结构中的多个对象。 所以我可能有一个Container对象,它承载3个SubContainer对象,这些对象又承载任意数量的Item对象。

有没有什么办法可以在这个对象树上使用XPath样式的表达式,这意味着reflection,这样我就可以使用XPath样式的表达式查询类的属性,这样代码看起来像:

object o = Container.Query("/Container/SubContainer[1]/Item[1]/@ItemProperty"); 

显然这完全弥补了,并且可能不是有效的XPath语法,但它只是为了让您了解我正在寻找什么。

编辑 – >我想以这种方式查询的原因是因为对象的路径不是固定的,因此需要由应用程序用户配置。

谢谢。

我有同样的问题,所以写了一个简单的扩展来使用reflection查询对象

http://code.google.com/p/antix-software/wiki/AntixReflectionQuery

如果它不能完全满足你的需要,它至少会成为一个开始

您可以编写一个扩展方法来控制,如您所描述的那样采用字符串。

您必须为其编写解析器并使用它来进行实际查询。