当javascript试图解析包含从C发送的列表的对象时发生崩溃#

当javascript试图解析包含从C发送的列表的对象时发生崩溃#,javascript,c#,angularjs,cefsharp,Javascript,C#,Angularjs,Cefsharp,我使用CefSharp让webbrowser在winforms应用程序中运行angularjs代码 我可以将c#对象发送到js端,然后在它们只包含字符串、int等时使用它们。但是当我试图发送一个包含值列表的对象时,当它试图在js端解析它时,CefSharp崩溃了 c代码的一个示例: 导致碰撞的Obj: TestClass tc = new TestClass() { name = "Bobby Test", other = "Hello", ints = new List

我使用CefSharp让webbrowser在winforms应用程序中运行angularjs代码

我可以将c#对象发送到js端,然后在它们只包含字符串、int等时使用它们。但是当我试图发送一个包含值列表的对象时,当它试图在js端解析它时,CefSharp崩溃了

c代码的一个示例:

导致碰撞的Obj:

TestClass tc = new TestClass()
{
    name = "Bobby Test",
    other = "Hello",
    ints = new List<int>(){0,1}
};
我的角度代码设置它以供使用:

$scope.$watch(function ()
{ return window.testObj },
function () {
    $scope.someField = window.testObj;
});
在传递对象之前,我尝试在该对象上执行JsonConvert.SerializeObject,但最终它在js端只是一个空对象

编辑-解决方案

C#至JS:

将TestClass更改为:

TestClass tc = new TestClass()
{
    name = "Bobby Test",
    other = "Hello",
    ints = new int[] {0,1}
};
它可以正确地处理上面的代码,而不必直接调用任何序列化或反序列化方法

JS至C#:

虽然这不是我的问题:


我正在向js端传递一个对象,并向c#传递一个回调函数,回调函数从js端接受一个序列化字符串,然后在c#端反序列化。

Chromium只能处理javascript简单类型(数组、数字、字符串等)

对于任何复杂数据,我通常在服务器端执行的操作是返回JSON字符串:

JavaScriptSerializer().Serialize(myObject);
然后在客户端使用

JSON.parse(myObjectAsString);

对我有效

我无法序列化包含列表的c#对象,然后在js端进行反序列化。对象在对其进行序列化后始终为空,否则将崩溃。我确实尝试过将列表切换到数组,我可以调用browser.RegisterJsObject(“testObj”,tc);然后访问js端的对象。另外,您的博客在最初的设置中非常有用。
TestClass tc = new TestClass()
{
    name = "Bobby Test",
    other = "Hello",
    ints = new int[] {0,1}
};
JavaScriptSerializer().Serialize(myObject);
JSON.parse(myObjectAsString);