C#处理JavaScript引擎

概述

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

MsieJavaScriptEngine使用

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

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的使用

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

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

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

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

代码使用方式如下:

 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();
            }                        
        }

 

转载于:https://www.cnblogs.com/xibei666/p/10545966.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值