2010-02-24 11 views
5

Ho un albero delle classi, che contiene più oggetti in una gerarchia. Quindi potrei avere un oggetto Container, che ospita 3 oggetti SubContainer, che a loro volta ospitano un numero arbitrario di oggetti Item.Utilizzo di una query in stile XPath con Reflection

Esiste un modo per utilizzare un'espressione in stile XPath su questo albero di oggetti, che implicherebbe la riflessione, in modo da poter eseguire query su una proprietà di una classe con un'espressione in stile XPath, in modo che il codice sembrasse qualcosa di simile:

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

Ovviamente che è completamente composto e probabilmente non è la sintassi XPath valida, ma è solo illustratory per dare un'idea di ciò che è che sto cercando.

Modifica -> Il motivo per cui desidero interrogare in questo modo è perché il percorso all'oggetto non è fisso e pertanto deve essere configurabile dall'utente dell'applicazione.

Grazie.

+0

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

risposta

0

È possibile scrivere un metodo di estensione su Controllo che accetta una stringa durante la descrizione.

Sarà necessario scrivere il parser e utilizzarlo per eseguire l'interrogazione effettiva.

+0

So che, anche se non sarebbe un controllo che vorrei estendere, sarebbe Object. Ma quello che sto chiedendo è se esiste attualmente qualcosa che esiste, come JXPath per Java (http://commons.apache.org/jxpath/). –

+0

@ Whit Whitfield - Non ho familiarità con nulla di questo tipo, ma qualcun altro potrebbe saperlo. – Oded

+0

Grazie per il tuo contributo! :) –

Problemi correlati