C#处理JavaScript引擎

概述linux

  一般JavaScript在Web浏览器执行展示特定效果,C#也能够后台执行JavaScript里面方法;C#一般调用第三方DLL方式:MsieJavaScriptEngine或者JavaScriptEngineSwitcher。具体使用列举以下;浏览器

MsieJavaScriptEngine使用spa

  Nuget里面,添加MsieJavaScriptEngine的类库;因为MsieJavaScriptEngine不支持.NET Core下Linux的部署运行,代码使用方式以下:code

public static string Ck3(string cert, string ts, string nullPara, string page, string token)
        {
            var basePath = AppDomain.CurrentDomain.BaseDirectory;
            using (var jsEngine = new MsieJsEngine())
            {
                jsEngine.ExecuteFile(string.Format(@"{0}/Scripts/myscript.js", basePath));
                string[] arr = new string[] { cert, ts, nullPara, page, token };
                jsEngine.Execute("var $CFMethod=$.ck;");
                var publickey = jsEngine.CallFunction("$CFMethod", arr);
                return publickey.ToString();
            }
        }

 

JavaScriptEngineSwitcher的使用orm

       Nuget里面,添加JavaScriptEngineSwitcher的类库;因为JavaScriptEngineSwitcher支持.NET Core下Linux和Win的部署运行,另外还须要安装的类库blog

JavaScriptEngineSwitcher.ChakraCore.Native.linux-x64  ///针对Linux-x64环境下组件;token

JavaScriptEngineSwitcher.ChakraCore.Native.win-x64   //针对Wind-x64环境下组件;ip

JavaScriptEngineSwitcher.ChakraCore.Native.win-x32   //针对Wind-x32环境下组件;ci

代码使用方式以下:部署

 public static string Ck(string cert, string ts, string nullPara, string page, string token)
        {
            var basePath = AppDomain.CurrentDomain.BaseDirectory;
            IJsEngineSwitcher engineSwitcher = JsEngineSwitcher.Current;
            engineSwitcher.EngineFactories.Add(new ChakraCoreJsEngineFactory());
            engineSwitcher.DefaultEngineName = ChakraCoreJsEngine.EngineName;
            using (IJsEngine engine = JsEngineSwitcher.Current.CreateDefaultEngine())
            {
                engine.ExecuteFile(string.Format(@"{0}/Scripts/myscipt.js", basePath));
                string[] arr = new string[] { cert, ts, nullPara, page, token };
                engine.Execute("var $CFMethod=$.ck;");
                var publickey = engine.CallFunction("$CFMethod", arr);
                return publickey.ToString();
            }                        
        }
相关文章
相关标签/搜索