苏飞论坛

标题: JScript 按照苏飞版封装成好用的类,可以直接导入JS和方法参数即可获取想要的返回值~~ [打印本页]

作者: Calvin    时间: 2014-6-13 00:20
标题: JScript 按照苏飞版封装成好用的类,可以直接导入JS和方法参数即可获取想要的返回值~~
自己按照苏飞的帖子里找到的JS执行方法进行了封装处理 有这个类可以方便执行JS了
http://www.sufeinet.com/forum.php?mod=viewthread&tid=1835&highlight=58%CD%AC%B3%C7
2年来一直用E语言写程序。突然用C#感觉还是有那种自己写代码的魅力。如果有BUG或者不足请多指教QQ:3450241
如果没有BUG这个程序应该使用在多线会比较好~~~
调用方法:

配合Resources资源文件实现方便的执行JS内容,好几年没用c#写东西了。可能有一些不足。希望多多指教




string device_id = ExtScriptControl(project.Properties.Resources.js, "eee", null);


[C#] 纯文本查看 复制代码
 

public string ExtScriptControl(string js, string Runjs, object[] obj)
        {
            CodeDomProvider _provider = new Microsoft.JScript.JScriptCodeProvider();
            StringBuilder sb = new StringBuilder();
            sb.Append("package aa{ public class JScript {");
            js = js.Replace("function", "public static function");
            sb.Append(js);
            sb.Append("}}");
            CompilerParameters parameters = new CompilerParameters();

            parameters.GenerateInMemory = true;

            CompilerResults results = _provider.CompileAssemblyFromSource(parameters, sb.ToString());

            Assembly assembly = results.CompiledAssembly;
            Type _evaluateType;
            _evaluateType = assembly.GetType("aa.JScript");
            object Robj = _evaluateType.InvokeMember(Runjs, BindingFlags.InvokeMethod,
null, null, obj);
            return Robj.ToString();
        }



作者: lsj418    时间: 2014-6-16 20:22
初学者,还有点看不懂。
作者: 站长苏飞    时间: 2014-6-17 21:56
这个可以好好优化一下,我给你收录到基类库里面
作者: baichong6730165    时间: 2015-3-1 19:56
可否能给个调用的示例呢,楼主。谢谢。




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4