C#で式言語?

C#で、JScriptをEvalして、実行する方法。

計算式を実行するサンプルはあるんだけど、任意の変数にオブジェクトを設定して実行するサンプルは見かけなかったので、晒しておく。

Hoge h = new Hoge();
h.Name = "FUGA";

string exp = "h.Name == 'FUGA' && a == 2";

Microsoft.JScript.Vsa.VsaEngine ve =
Microsoft.JScript.Vsa.VsaEngine.CreateEngine();

Microsoft.JScript.JSObject so = new Microsoft.JScript.JSObject();
so.SetMemberValue2("h", h);
so.SetMemberValue2("a", 1);

ve.PushScriptObject(so);

object result = Microsoft.JScript.Eval.JScriptEvaluate(exp, ve);

Console.WriteLine(result);