Как получить правильный массив строк C# из вызова функции JavaScript, используя Jint

Я использую Jint для оценки JavaScript в приложении C#. Мой JS возвращает массив строк:

return ["blah", "blah", "blah"];

Но я не уверен, как правильно использовать этот массив, когда вернусь в C#:

Object result = e.Execute (javaScript).Invoke("jsFunction", answers).ToObject();
string[] resultAsStrings = ???;

Вот как выглядит отладчик:

1 ответ

Вы можете просто разыграть результат ToObject() для object[] в этом случае.

Вот преобразования, которые ToObject() применяется при обращении к значению JavaScript:

  • undefined: null
  • null: null
  • Boolean: bool
  • String: string
  • Number: double
  • Array: object[] с каждым элементом, преобразованным с помощью ToObject()
  • Date: DateTime
  • Function: Func<JsValue, JsValue[], JsValue>
  • RegExp: Regex
  • Object: dynamic со всеми свойствами объекта, преобразованного с помощью ToObject()

Если ни один тип не соответствует, он бросает ArgumentOutOfRangeException

Другие вопросы по тегам