Question

Je travaille sur un projet où je dois évaluer certaines formules dans VB.NET. J'utilise le contrôle MS Script d'évaluer quelques-unes des formules simples logiques / mathématiques.

Cependant, je suis maintenant confronté à traiter les expressions de chaîne que les variables définies dans mon programme à certaines valeurs. Ainsi, par exemple, disons que j'ai les éléments suivants:

Dim netPrice As Decimal
Dim expressionFormula As String = "netPrice = 0"

Je dois être en mesure d'évaluer « expressionFormula » et la variable NetPrice à 0. J'ai essayé différentes combinaisons de la méthode .AddObject dans le script de contrôle MS, mais rien encore de travaillé.

Je dois mentionner cet exemple est uniquement à des fins d'illustration, le scénario réel implique plusieurs objets DataTable à partir d'un DataSet typé. En fin de compte, quelques-uns des domaines dans mon DataTable peut avoir besoin d'être mis à des valeurs constantes spécifiques basées sur ces expressions dynamiques.

Merci pour l'aide!

Était-ce utile?

La solution

Pour ce type de fonctionnalité, vous devez écrire votre propre analyseur et évaluateur.

Jetez un oeil à la Linq Expression classe -. il peut aider

Vous pouvez également, en fonction de votre approche, vous pouvez être en mesure d'écrire et de compiler des classes dynamiques en utilisant CSharpCodeProvider pour compiler vos expressions telles que les classes C # / assemblées.

Autres conseils

Si vous devez gérer des expressions complexes, peut-être cette bibliothèque peut être utile: http://flee.codeplex.com/ ?

Dynamic Linq est ce que vous cherchez

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top