.NETで動的文字式式を評価しますか?
-
08-10-2019 - |
質問
VB.NETのいくつかの式を評価する必要があるプロジェクトに取り組んでいます。私はそれを使用しています MSスクリプトコントロール 単純な論理/数学的式の一部を評価します。
ただし、プログラム内の変数を特定の値に設定する文字列式に対処することに直面しています。したがって、たとえば、次のことを持っているとしましょう。
Dim netPrice As Decimal
Dim expressionFormula As String = "netPrice = 0"
「ExpressionFormula」を評価し、NetPrice変数を0に設定できる必要があります。MSスクリプトコントロールで.AddObjectメソッドのさまざまな組み合わせを試していますが、まだ機能していません。
この例は、イラストの目的のみを目的としています。実際のシナリオには、入力されたデータセットからのいくつかのデータテーブルオブジェクトが含まれます。最終的に、私のデータテーブルの一部のフィールドは、これらの動的式に基づいて特定の定数値に設定する必要がある場合があります。
助けてくれてありがとう!
解決
この種の機能については、独自のパーサーと評価者を作成する必要があります。
linqを見てください Expression
クラス - それは役立つかもしれません。
または、アプローチに応じて、次のように動的クラスを書き込み、コンパイルできる場合があります CSharpCodeProvider
式をC#クラス/アセンブリとしてコンパイルします。
他のヒント
複雑な表現を処理する必要がある場合は、このライブラリが役立つ可能性があります。 http://flee.codeplex.com/ ?
動的linq あなたが探しているものです
所属していません StackOverflow