¿Cuál es un buen caso de uso para .net 4.0 Expression Trees?

.net expression-trees linq

Pregunta

Este fue inspirado por mi compañero de trabajo de gurú del lenguaje que parece que no puede encontrar un buen uso para ellos, y después de algunos intentos fallidos por mi cuenta, tengo que estar de acuerdo.

Ahora sé que estos conceptos tienden a fluir mucho más fácilmente una vez que tienes algunas buenas razones prácticas.

En este momento, parece que su único propósito es permitirle escribir un proveedor de Linq.

¿¿Es asi?? ¿Hay otros beneficios para esto?

Respuesta aceptada

El árbol de expresiones es tan poderoso porque te permiten tratar el código como datos . Los usuarios están acostumbrados a acumular datos, guardarlos y volver a ellos más tarde.

Los árboles de expresiones le permiten hacer lo mismo con el código. Por ejemplo, puede tomar la entrada de su usuario (casillas de verificación, rangos de números, etc.) y traducirla en un árbol de Expresión. Ese árbol de expresiones puede ejecutarse o almacenarse para su uso posterior. Muy genial.

Piense en los usos prácticos de los informes, como crear y guardar filtros de datos y asignaciones de datos. Otro uso práctico sería admitir flujos de trabajo personalizados en su aplicación basados ​​en reglas definidas por el usuario.

Aquí hay un poco de código de MSDN sobre la serialización de árboles de expresión ( http://code.msdn.microsoft.com/exprserialization ) que debería hacer que las ideas fluyan.


Respuesta popular

Puedes usar los árboles de expresiones para transformar un idioma de dominio en código ejecutable.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow