2010-12-05 24 views
2

私はVB.NETの数式を評価する必要があるプロジェクトに取り組んでいます。私はMS Script Controlを使って、単純な論理式/数式のいくつかを評価してきました。.NETでの動的文字列数式の評価?

しかし、今私はプログラム内の変数を特定の値に設定する文字列式を扱うことに直面しています。したがって、たとえば、のは、私は次のことを持っているとしましょう:

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

私は.AddObjectの異なる組み合わせをしようとしてきた「expressionFormula」を評価することが可能と0にネットプライス変数を設定する必要がありますメソッドは、MS Script Controlでは、しかし、何もまだ働いている。

この例は説明のためだけのものですが、実際のシナリオでは、型指定されたDataSetの複数のDataTableオブジェクトが必要です。最後に、私のDataTableのいくつかのフィールドは、これらの動的式に基づいて特定の定数値に設定する必要があります。

ありがとうございました!

+0

なぜこの質問にタグが付けられましたか?私はC#の言及を見ません... –

+0

@マーク:あなたは正しいです。最初はVB/C#とは独立していると思っていましたが、今はそれほど確かではありません。私はC#タグを削除します。 – Overhed

答えて

3

この種の機能を使用するには、独自のパーサーと評価ツールを作成する必要があります。

Linq Expressionクラスを見てください - それは役に立つかもしれません。

また、CSharpCodeProviderを使用してダイナミッククラスを記述してコンパイルし、式をC#クラス/アセンブリとしてコンパイルすることができます。

+0

あなたの答えをありがとう。私は、式を書くことができるように(データを解析できるように)、DataSet/DataTableの構文を利用して値を設定するときに、フィールドとテーブルの名前を動的に「プラグイン」する方法に、より厳密なアプローチをとった。 – Overhed

2

複雑な式を処理する必要がある場合は、おそらくこのライブラリが役に立ちます:http://flee.codeplex.com/

+0

リンクをありがとう、それは私が必要としなかったが、それは私が現在使用している旧式のMS Script Controlの良い代替品かもしれないように見えます。 – Overhed

0

Dynamic Linqあなたが探しているのは

+0

私はD-Linqとやりとりをしていますが、私が私の例で描いたことをするのに役立つのか分かりません。 – Overhed

関連する問題