使用带反射的XPath样式查询

Mat*_*eld 5 .net c# reflection xpath

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

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

object o = Container.Query("/Container/SubContainer[1]/Item[1]/@ItemProperty");
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢.

Ant*_*ton 4

我遇到了同样的问题,因此编写了一种简单的扩展来使用反射查询对象

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

如果它不能完全满足您的需要,那么它至少是一个开始