Frage

Ich arbeite an einem Projekt, wo ich brauche einige Formeln in VB.NET zu bewerten. Ich habe mit dem MS Script Control einige der einfachen logischen / mathematischen Formeln zu bewerten.

Allerdings bin ich jetzt mit dem Umgang mit String-Ausdrücken, dass Setvariablen in meinem Programm auf bestimmte Werten gegenüber. So zum Beispiel, sagen wir, ich habe folgendes:

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

Ich muß in der Lage sein „expressionFormula“ zu bewerten und stellen Sie die NetPrice Variable auf 0. Ich habe verschiedene Kombinationen der .AddObject Methode in dem MS Script Control versucht, aber nichts hat funktioniert noch.

Ich soll dieses Beispiel nennen ist nur zu Veranschaulichungszwecken beinhaltet das reale Szenario mehr Datatable-Objekte aus einem typisierten DataSet. Am Ende müssen einige Felder in meinem Datatable kann auf bestimmte konstante Werte auf der Basis dieser dynamischen Ausdrücke festgelegt werden.

Danke für die Hilfe!

War es hilfreich?

Lösung

Für diese Art von Funktionalität, müssen Sie Ihren eigenen Parser und Evaluator schreiben.

Werfen Sie einen Blick auf die Linq Expression Klasse -. es kann helfen,

Alternativ je nach Ansatz, können Sie zu schreiben und zu kompilieren dynamischen Klassen der Lage sein, die CSharpCodeProvider Ihre Ausdrücke wie C # -Klassen / Baugruppen erstellen.

Andere Tipps

Wenn Sie komplexe Ausdrücke behandeln müssen, vielleicht kann diese Bibliothek nützlich sein: http://flee.codeplex.com/ ?

Dynamische Linq ist das, was Sie suchen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top