当javascript尝试解析包含从C#发送的列表的对象时,CefSharp崩溃
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了当javascript尝试解析包含从C#发送的列表的对象时,CefSharp崩溃,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1389字,纯文字阅读大概需要2分钟。
内容图文
我正在使用CefSharp让webbrowser在winforms应用程序中运行angularjs代码.
我能够将c#对象发送到js端,然后如果它们只包含字符串,整数等,则使用它们.但是当我尝试发送一个包含值列表的对象时,CefSharp在js端尝试解析它时会崩溃.
c#代码的一个例子:
public class TestClass
{
public string name { get; set; }
public string other { get; set; }
public List<int> ints { get; set; }
}
工作对象:
TestClass tc = new TestClass()
{
name = "Bobby Test",
other = "Hello"
};
Obj造成崩溃:
TestClass tc = new TestClass()
{
name = "Bobby Test",
other = "Hello",
ints = new List<int>(){0,1}
};
我如何传递给js代码:
browser.RegisterJsObject("testObj", tc);
我的角度代码设置使用:
$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);
适合我
内容总结
以上是互联网集市为您收集整理的当javascript尝试解析包含从C#发送的列表的对象时,CefSharp崩溃全部内容,希望文章能够帮你解决当javascript尝试解析包含从C#发送的列表的对象时,CefSharp崩溃所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。