执行JavaScript代码并从Xilium.ceflue获取对象和/或数组结果

执行JavaScript代码并从Xilium.ceflue获取对象和/或数组结果,javascript,chromium,chromium-embedded,cefglue,Javascript,Chromium,Chromium Embedded,Cefglue,我正在使用CefGlue对浏览器执行JavaScript代码 if (browser.GetMainFrame().V8Context.TryEval(script, out returnValue, out ex)) { if (returnValue != null) { SetClientValuetFromV8Value(returnValue, result); } } 这就是负责将CefV8Value映射到.NET数据类型的方

我正在使用CefGlue对浏览器执行JavaScript代码

 if (browser.GetMainFrame().V8Context.TryEval(script, out returnValue, out ex)) {
       if (returnValue != null) {
            SetClientValuetFromV8Value(returnValue, result);
       }
 }
这就是负责将CefV8Value映射到.NET数据类型的方法

   private static void SetClientValuetFromV8Value(CefV8Value returnValue, JSResult result) {
        if (returnValue == null) {
            throw new ArgumentNullException("returnValue");
        }

        if (result == null) {
            throw new ArgumentNullException("result");
        }

        object v = null;
        string type;
        if (returnValue.IsString) {
            v = returnValue.GetStringValue();
        }
        else if (returnValue.IsInt) {
            v = returnValue.GetIntValue();
        }
        else if (returnValue.IsBool) {
            v = returnValue.GetBoolValue();
        }
        else if (returnValue.IsDate) {
            v = returnValue.GetDateValue();
        }
        else if (returnValue.IsDouble) {
            v = returnValue.GetDoubleValue();
        }
        else if (returnValue.IsArray) {
            // what do we put in here??
        }
        else if (returnValue.IsObject) {
            // what do we put in here??
        }

        result.JsValue = new JSValue(v);
    }
在我看来,当
IsObject
IsArray
返回true时,似乎无法获取值。对于
GetObjectValue()
getArrayValue()

我知道我可以让javascript代码在返回字符串之前将所有内容转换为字符串,但这不是我所需要的