Javascript 如何使用.net库类运行java脚本函数?

Javascript 如何使用.net库类运行java脚本函数?,javascript,c#,.net,c#-4.0,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,

我有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);
je.Execute(“函数foo(a,b,c){返回a+b*c;};”);
je.CallFunction(“foo”,1,2,3);

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


JavaScript示例未使用大多数变量,与以下内容相同:

function(params) {
  return {
    billAmount: 0,
    maxDiscountPercentage: params.maxDiscountPercentage,
    maxDiscountAmount: 0
  };
});
在C#中,它类似于匿名函数:

new Func<dynamic, dynamic>(params => new {
    billAmount = 0,
    maxDiscountPercentage = params.maxDiscountPercentage,
    maxDiscountAmount = 0
});
newfunc(参数=>new{
billAmount=0,
maxDiscountPercentage=params.maxDiscountPercentage,
MaxMount=0
});

此外,我还尝试过使用Microsoft.JScript.Vsa。但在这种情况下,我无法执行JSON。解析运算为什么不在c#?@SamvelPetrosov上写这段代码,实际上,这个js公式存储在DB中,用于执行各种计算。这将有助于不同的平台为什么不能在C#中执行此操作?假设有充分的理由在C#中使用js,您是否考虑过使用Jurassic@法律自由库中的lostlain非常有用,而且运行良好。谢谢你的建议。