using System; using System.Collections.Generic; using System.Linq; using System.Text; using MSScriptControl; namespace ScriptEngine { public class Script { private ScriptControl msc; private string _codeBody; /// ///构造函数 /// public Script(string codeBody) : this(ScriptLanguage.JScript, codeBody) { } /// /// 构造函数 /// /// 脚本类型 public Script(ScriptLanguage language, string codeBody) { this.msc = new ScriptControl(); this.msc.UseSafeSubset = true; this.msc.Language = language.ToString(); _codeBody = codeBody; } /// /// 运行Eval方法 /// 可以执行方法,对象 /// /// 表达式 /// 函数体 /// 返回值object public object Eval(string expression) { msc.AddCode(_codeBody); return msc.Eval(expression); } /// /// 运行Eval方法 /// /// js表达式, /// 脚本语言 /// 返回值object public object Eval(string expression, ScriptLanguage language) { msc.AddCode(_codeBody); if (this.msc.Language != language.ToString()) this.msc.Language = language.ToString(); return Eval(expression); } /// /// 运行Run方法 /// /// 入口函数名称 /// 参数 /// 函数体 /// 返回值object public object Run(string mainFunctionName, params object[] parameters) { this.msc.AddCode(_codeBody); return msc.Run(mainFunctionName, ref parameters); } } }