public object JsEval(string Expression)
{
object result=null;
try
{
Microsoft.JScript.Vsa.VsaEngine ve=Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
result = Microsoft.JScript.Eval.JScriptEvaluate(Expression,ve);
}
catch(Exception e)
{
throw new System.Exception("[错误]表达式"+Expression+"错误:"+e.Message);
}
return result;
}
需要添加引用
Microsoft.JScript
Microsoft.Vsa
在一些自定义的应用系统中,可以按JS的语法写一些表达式,通过.NET的VSA引擎进行解析执行,这样就为我们设计自己的脚本引擎提供了很大的便利。
上面的代码只是提供一种很简单的思路,仅仅是执行一个表达式字符串返回执行结果。使用VSA我们可以开发出更强大的解析功能,比如执行一段JS语法的字符串,并且可以在这段字符串中引用自定义的类及执行C#方法等,而语法格式完全按照JS或VB的语法。