Qual è un buon caso d'uso per gli alberi di espressione .net 4.0?

.net expression-trees linq

Domanda

Questo è stato ispirato dal mio collaboratore linguistico-guru che non riesce a trovare un buon uso per loro, e dopo alcuni tentativi zoppi del mio, dovrei essere d'accordo.

Ora so che questi concetti tendono a fluire molto più facilmente una volta che si ottengono buoni motivi pratici.

Al momento sembra che il suo unico scopo sia quello di permetterti di scrivere un provider Linq?

È così ?? C'è qualche altro vantaggio a questo?

Risposta accettata

L'albero delle espressioni è così potente perché ti consente di trattare il codice come dati . Gli utenti sono abituati a creare dati, salvarli e tornare in seguito.

Gli alberi delle espressioni ti consentono di fare la stessa cosa con il codice. Ad esempio, puoi inserire l'input dell'utente (caselle di controllo, intervalli numerici, ecc.) E tradurlo in un albero di espressioni. Quell'albero di espressioni può quindi essere eseguito o memorizzato per un uso successivo. Molto bello

Pensa agli usi pratici relativi alla creazione di rapporti come la creazione e il salvataggio di filtri dati e mappature dei dati. Un altro uso pratico sarebbe quello di supportare flussi di lavoro personalizzati nell'applicazione in base a regole definite dall'utente.

Ecco un po 'di codice MSDN sulla serializzazione di alberi di espressioni ( http://code.msdn.microsoft.com/exprserialization ) che dovrebbe far scorrere le idee.


Risposta popolare

È possibile utilizzare Expression Trees per trasformare una lingua di dominio in un codice eseguibile.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché