javascript - 如何使用.net库类运行javascript函数?

标签 javascript c# .net c#-4.0

我有用于计算一些公式的 JavaScript 字符串,但我需要从 C# 执行脚本。

如JS公式字符串:

function(params) {
  var itemAmount = 0,
      itemsList = JSON.stringify(params.items),
      billAmount = 0,
      itemDiscountAmount = 0,
      itemDiscountPercentage = 0,
      maxDiscountAmount = 0, 
      maxDiscountPercentage = params.maxDiscountPercentage;
  return {
    billAmount: billAmount,
    maxDiscountPercentage: maxDiscountPercentage,
    maxDiscountAmount: maxDiscountAmount
  };
});

我需要传递参数并使用 C# 获取结果。

最佳答案

也许您正在寻找这样的 JavaScript 引擎:

        var es = JsEngineSwitcher.Instance;
        es.EngineFactories.AddChakraCore();
        es.DefaultEngineName = ChakraCoreJsEngine.EngineName;
        var je = es.CreateDefaultEngine();

        je.EmbedHostType("console", typeof(Console));
        je.Execute("console.WriteLine('HELLO CHAKRA')");

这应该适合您:

        je.Execute("function foo(a,b,c){return a+b*c;};");
        je.CallFunction<int>("foo", 1, 2, 3);

https://github.com/Taritsyn/JavaScriptEngineSwitcher

顺便说一句,如果您的代码中需要 JSON,这可能会有所帮助:

https://github.com/douglascrockford/JSON-js

关于javascript - 如何使用.net库类运行javascript函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52555867/

相关文章:

c# - 作为 Windows 服务运行时出现 "Win32Exception Not enough storage is available to process this command"错误

c# - 带宽整形和虚拟网络层/接口(interface) - Windows + .NET

javascript - Reactjs、reducers、语言切换

c# - 中等信任下的 ODP.net 访问违规

C# 对象初始化中的条件匿名对象成员

c# - MVC 中的自定义表单例份验证

c# - 有条件地阻止方法覆盖

javascript - 在 JQuery/Javascript 中捕捉到网格的可拖动正方形/矩形

javascript - iPhone 图像内的图像幻灯片

javascript - WebStorm 认为错误构造函数的参数为​​零