zoukankan      html  css  js  c++  java
  • 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();
                }                        
            }
  • 相关阅读:
    STM32F401+nRF24L01无线传输音频(对讲机原型)
    Keil MDK STM32系列(五) 使用STM32CubeMX创建项目基础结构
    Keil MDK STM32系列(四) 基于抽象外设库HAL的STM32F401开发
    Keil MDK STM32系列(三) 基于标准外设库SPL的STM32F407开发
    PlatformIO下的STM32F4xx项目配置
    nRF24L01基于FIFO TX队列的发送性能优化
    个人发展计划IDP 与Smart原则
    IDEA Maven 项目默认编译项目为JDK 1.5
    投资 学习 成长 判断力 面对挫折
    投资 价值 道德 长期主义(5,10,20年)三观
  • 原文地址:https://www.cnblogs.com/xibei666/p/10545966.html
Copyright © 2011-2022 走看看