Миграция с ClearScript на ChackraCore.Как я могу вызвать функцию с аргументами? - PullRequest
0 голосов
/ 14 мая 2019

Я мигрирую из .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)); };");

Это тоже не работа. Как я могу вызвать функцию и получить ответ? Может быть, мне нужно использовать другой кроссплатформенный движок?

...