C#执行javascript代码,执行复杂的javascript代码新方式
Posted 未将对象引用设置到对象的实例
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#执行javascript代码,执行复杂的javascript代码新方式相关的知识,希望对你有一定的参考价值。
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代码新方式的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C#(.NET)中执行 Javascript 代码 [重复]