我从.Net Framework迁移到.Net Core,并想将ClearScript.V8更改为JavaScriptEngineSwitcher.ChakraCore。 我有一个像这样的脚本:
var main=function(e){function t(n){if(r[n])return r[n].exports; etc...
在ClearScript中,此函数调用如下:
public string Execute(object[] args)
{
return Engine.Script.main.main(args).ToString();
}
在ChakraCore中,我仅找到CallFunction方法:
public string Execute(object[] args)
{
return Engine1.CallFunction<string>("main", args);
}
但是它不起作用。我捕获到异常JavaScriptEngineSwitcher.Core.JsUsageException:“参数无效”。 内部object []带有1个元素的args数组-JSON字符串。
我试图评估函数是否抛出包装:
Engine1.Evaluate<string>("var funcWrapper = function(e) { return main(JSON.parse(e)); };");
它也不起作用。如何调用该函数并获得响应? 也许我需要使用另一个跨平台引擎?