我正在使用Jint在C#应用程序中评估JavaScript。我的JS返回一个字符串数组:

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


但是我不确定回到C#后如何正确使用该数组:

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


这是调试器的外观:

javascript - 如何使用Jint从JavaScript函数调用中获取适当的C#字符串数组-LMLPHP

最佳答案

在这种情况下,您可以将ToObject()的结果强制转换为object[]

以下是ToObject()面向JavaScript值时应用的转换:


undefinednull
nullnull
Booleanbool
Stringstring
Numberdouble
Arrayobject[],每个元素本身使用ToObject()转换
DateDateTime
FunctionFunc<JsValue, JsValue[], JsValue>
RegExpRegex
Objectdynamic,并使用ToObject()转换对象的所有属性


如果没有匹配的类型,则抛出ArgumentOutOfRangeException

10-04 17:44