La evaluación de fórmulas de cuerdas dinámicas en .NET?
-
08-10-2019 - |
Pregunta
Estoy trabajando en un proyecto en el que tengo que evaluar algunas fórmulas en VB.NET. He estado usando el MS Script Control a evaluar algunas de las simples fórmulas matemáticas lógicas /.
Sin embargo, estoy enfrenta ahora a tratar con expresiones de cadena que las variables de ajuste en mi programa a ciertos valores. Así, por ejemplo, digamos que tengo lo siguiente:
Dim netPrice As Decimal
Dim expressionFormula As String = "netPrice = 0"
Tengo que ser capaz de evaluar "expressionFormula" y establecer la variable netPrice a 0. He estado tratando diferentes combinaciones de .AddObject el método en el control de secuencias de comandos de MS, pero nada ha funcionado todavía.
Debería mencionar este ejemplo es sólo para fines de ilustración, el escenario real implica varios objetos DataTable de un DataSet con tipo. Al final, algunos de los campos en mi DataTable pueden necesitar ser ajustado a valores constantes específicas basadas en estas expresiones dinámicas.
Gracias por la ayuda!
Solución
En este tipo de funcionalidad, tendrá que escribir su propio analizador y el evaluador.
Tome un vistazo a la LINQ Expression
clase -. puede ayudar
Por otra parte, dependiendo de su enfoque, que puede ser capaz de escribir y clases dinámicas de compilación utilizando el CSharpCodeProvider
para compilar sus expresiones como clases de C # / conjuntos.
Otros consejos
Si usted tiene que manejar expresiones complejas, puede que esta biblioteca puede ser útil: http://flee.codeplex.com/ ?
LINQ dinámica es lo que estás buscando