2010-06-16 7 views
6

Wie lautet der Status der dynamischen Codeauswertung in C#? Für eine sehr fortgeschrittene Funktion einer App, an der ich arbeite, möchte ich, dass die Benutzer eine C# -Code-Zeile eingeben können, die zu einem booleschen Wert ausgewertet werden soll.Wie erfolgt die dynamische Skriptauswertung in C#?

Etwas wie:

DateTime.Now.Hours > 12 && DateTime.Now.Hours < 14 

Ich möchte diese Zeichenfolge dynamisch eval und das Ergebnis als boolean erfassen.

Ich versuchte Microsoft.JScript.Eval.JScriptEvaluate, und das hat funktioniert, aber es ist technisch veraltet und es funktioniert nur mit Javascript (nicht ideal, aber praktikabel). Außerdem möchte ich in der Lage sein, Objekte in die Skript-Engine zu schieben, damit sie bei der Auswertung verwendet werden können.

Einige Ressourcen, die ich finde, erwähnt das dynamische Kompilieren von Assemblys, aber das ist mehr Overhead als ich denke, dass ich damit umgehen möchte.

Also, was ist der Status der dynamischen Skriptauswertung in C#? Ist es möglich, oder habe ich kein Glück?

Antwort

3

Sie das Script des DLR nutzen, hier ein Beispiel:

+0

Nizza Zusammenfassung Artikel –

Verwandte Themen