• 【C#.NET Core】 跨平台执行javascript


    背景

    Windowsc#调用JavaScript常用V8.NET,项目迁移到 Linux 才注意到v8不支持Linux,遂改为JavaScriptEngineSwitcher.ChakraCore(直接在nugget上搜索JavaScriptEngine

    使用

    引入nugget包-JavaScriptEngineSwitcher.ChakraCore

    代码调用js文件即可:

    using JavaScriptEngineSwitcher.ChakraCore;
    using JavaScriptEngineSwitcher.Core;
    using System.Text;
    
    namespace Program
    {
        internal static class Sign
        {
            private const string JsPath = "demo.js";
    
            public static string GetSign(string cityid)
            {
                string result;
                var switcher = JsEngineSwitcher.Current;
                switcher.EngineFactories.Add(new ChakraCoreJsEngineFactory());
                switcher.DefaultEngineName = ChakraCoreJsEngine.EngineName;
                using IJsEngine engine = JsEngineSwitcher.Current.CreateDefaultEngine();
                engine.ExecuteFile(JsPath, Encoding.UTF8);
                //调用JS文件中的方法、传入参数
                result = engine.CallFunction<string>("start", cityid);
    
                return result;
            }
        }
    }

    另外avaScriptEngineSwitcher也有V8及其跨平台库,记录一下:

  • 相关阅读:
    Linux w命令
    01.drf文档及外键字段反序列化
    redis的参数解释
    redis集群复制和故障转移
    codis原理及部署_01
    redis 主从哨兵02
    redis 主从哨兵01
    redis持久化
    redis python操作
    redis cluster
  • 原文地址:https://www.cnblogs.com/Zdelta/p/14122304.html
Copyright © 2020-2023  润新知