2010-02-24 12 views
5

Tengo un árbol de clases, que contiene múltiples objetos en una jerarquía. Así que podría tener un objeto Container, que aloja 3 objetos SubContainer, que a su vez albergan una cantidad arbitraria de objetos Item.Uso de una consulta de estilo XPath con Reflection

¿Hay alguna manera de que pueda usar una expresión de estilo XPath sobre este árbol de objetos, lo que implicaría reflexión, para poder consultar una propiedad de una clase con una expresión de estilo XPath, para que el código se vea algo así como:

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

Obviamente que es completamente hecha y probablemente no es la sintaxis XPath válida, pero es sólo illustratory para darle una idea de qué es lo que estoy buscando.

Editar -> La razón por la que me gustaría consultar de esta manera es porque la ruta al objeto no es fija y, por lo tanto, debe ser configurable por el usuario de la aplicación.

Gracias.

+0

http://stackoverflow.com/questions/371807/traversing-an-arbitrary-c-sharp-object-graph-using-xpath-applying-xsl-transforms – user1709408

Respuesta

0

Puede escribir un método de extensión para Control que toma una cadena como usted describe.

Deberá escribir el analizador y utilizarlo para realizar las consultas reales.

+0

Sé que, aunque no sería un Control que me gustaría extender, sería Object. Pero lo que estoy preguntando es si realmente hay algo que existe actualmente, como JXPath para Java (http://commons.apache.org/jxpath/). –

+0

@Matt Whitfield - No estoy familiarizado con nada de este tipo, pero alguien más puede saberlo. – Oded

+0

¡Gracias por tu aportación! :) –

Cuestiones relacionadas