我有用于计算一些公式的 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,这可能会有所帮助:
关于javascript - 如何使用.net库类运行javascript函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52555867/