码迷,mamicode.com
首页 > 编程语言 > 详细

C#执行javascript代码,执行复杂的javascript代码新方式

时间:2018-08-18 19:35:18      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:2.0   str   date   tin   完美   int   mini   cti   function   

1.

使用nuget 包"Jurassic", 注意,如果 nuget上的包 用起来出现错误,请自行下载 github代码,自行编译最新代码成dll,再引用。

官方的nuget包 很可能不是最新的。

2.

我是将最新的源代码 下载编译,自行引用的。因为 nuget上的最新 包(版本号"2.2.2")缺乏对 uint8Array的支持。

最新的源代码编译的程序集 只支持 .net4.5 和 .netstandard 2.0

3.

编译完的用法举例:

 //测试3
        public static bool ExecuteScript(string rawess, string cype)
        {
            object[] para = new object[] { rawess, cype};
            var funcName =  "validate";

            Jurassic.ScriptEngine engine = new Jurassic.ScriptEngine(); 
            string script = JsConsts.JsCodes;
            engine.Execute(script);
             
            var dd = engine.GetGlobalValue("WAValidator");
            var validatefunc  = ((ObjectInstance)dd).Properties.Where(q=>q.Key== "validate").First();
            engine.SetGlobalValue("validate", validatefunc.Value);//这一步骤是手动把 函数 加入到global中,以方便下面代码 调用。
            var d = engine.CallGlobalFunction<bool>(funcName, para);

            return d;
        }

 

4.执行通过,完美输出 js结果!注意,我的js文件是 最后的mini压缩版本, 使用了requirejs等打包后的结果。

 

C#执行javascript代码,执行复杂的javascript代码新方式

标签:2.0   str   date   tin   完美   int   mini   cti   function   

原文地址:https://www.cnblogs.com/x-poior/p/9498113.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!