SignalR如何传递复杂对象?SignalR上有一个很好的教程,解释了如何将.NET对象作为参数传递给Javascript,反之亦然。在这种情况下,它传递一个ChatMessage对象。但是,本教程针对的是一个非常简单的对象。我试图了解如何在Javascript中处理复杂的.NET对象(其他对象作为属性)。例如,考虑以下对象:classMaster{publicListQuarterHours{get;放;}publicListBooks{get;放;}publicintEndDay{得到;放;}publicintStartDay{得到;放;}}classQuarterHour{publicMinuteInstance分钟{get;设置;}公共intHourStart{得到;设置;}}类MinuteInstance{公共布尔已注册{get;设置;}publicintNumAttendees{get;set;}}在.NET中,我可以这样引用Value:master.QuarterHours[2].Minute.Registered。我的问题:如何在Javascript端的接收方法中引用master.QuarterHours[2].Minute.Registered?如何在Javascript中构建Master对象以发送到.NET端?您只需发送它并以相同的方式引用它。您将通过(这是从服务器获取时的样子):{QuarterHours:[{Minute:{Registered:true,NumAttendees:1337},HourStart:1}],Books:["GameofThrones","HarryPotter"],EndDay:2,StartDay:3}您可能希望将该类序列化为JSON对象。有很多方法可以实现这一点,但您可以尝试使用JSON.NET快速轻松地完成此操作。如果它尚未包含在您的项目中,您可以通过Nuget添加它:Install-PackageNewtonsoft.Json代码如下:varjson=JsonConvert.SerializeObject(master);任何喜欢从JSON对象读取。您可以使用以下javascript代码将SignalR字符串消息转换为JSON对象:varmaster=JSON.stringify(eval("("+message+")"));varregistered=master.QuarterHours[2].Minute.Registered;您还可以通过SignalR将其传递到服务器并使用JsonConvert.DeserializeObject反序列化JSON对象,以便将其转换为您的C#类。查看此处的文档了解更多详细信息:http://james.newtonking.com/projects/json/help/C#学习教程就这些了:如何通过SignalR传递复杂对象?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
