Я мигрирую из .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: «Неверный аргумент».
Внутри объекта [] массив аргументов с 1 элементом - строка JSON.
Я попытался оценить функцию throw the wrapper:
Engine1.Evaluate<string>("var funcWrapper = function(e) { return main(JSON.parse(e)); };");
Это тоже не работа. Как я могу вызвать функцию и получить ответ?
Может быть, мне нужно использовать другой кроссплатформенный движок?