Tengo una cita donde leo la lógica de negocios y reemplazo las variables con valores reales y luego tengo que evaluarlo para obtener un resultado. Actualmente estoy usando bcParser para hacerlo y funciona muy bien para toda la lógica que se escribe como formato de Excel.¿Es posible crear un árbol de expresiones para sentencias if dinámicas?
La bola curva que se arroja sobre mí es que, la condición if no será como excel if(cond, true, false)
sino que será como C# donde if (cond) { true; } else { false;}
, esto tiene más sentido y es fácil de mantener. Como reemplazo todas las variables con valor de antemano, todo lo que tengo que hacer es evaluarlo. Actualmente estoy resolviendo este problema exportando la lógica a los métodos de C# y usando la reflexión lo estoy evaluando y también funciona.
Me pregunto si hay alguna otra opción, no quiero escribir código para cada condición if y me gustaría evaluarlo en el tiempo de ejecución. Me preguntaba si debería poder crear un analizador de tokens de algún tipo y llamar a la evaluación de expresión nativa de C# y realizar el cálculo. No he ido a la comprensión de los árboles de expresión, parece que es posible con ese enfoque. antes de ir allí, me gustaría saber si es posible en absoluto? Gracias,
Los árboles de expresiones no te ayudarán a analizar la cadena. Es posible que desee consultar [CodeDom] (http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx) o [Rosalyn] (http://msdn.microsoft.com/en-us/roslyn).) –