Javascript 如何使用.net库类运行java脚本函数?
我有JavaScript字符串用于计算一些公式,但我需要从C#执行脚本 像JS公式字符串: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,
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非常有用,而且运行良好。谢谢你的建议。