[英]Using SignalR, how do I send a dictionary (associative array) to Javascript?
字典不可序列化,因此不能通过SignalR作为Javascript(伪)关联数组发送给我的客户端JavaScript代码...
在.net中,我的复杂类型是:
public class MyClass {
public [primitive] whatever {get;set;}
...
public Dictionary<string, string> Properties { get; set; }
}
在Javascript中,我希望能够像这样引用数据:
data.Properties["key"]
更新:
我正在尝试先串行化一个字符串,因为我通过SQL Service Broker路由实例。 在这一行:
XmlSerializer serializer = new XmlSerializer(typeof(T));
其中T是MyClass的类型
反映类型[MyClass]时出错
无法序列化成员[MyClass] .Properties类型System.Collections.Generic.Dictionary`2 [[System.String,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089],[System.String,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]],因为它实现了IDictionary。
我觉得我要回答我自己的问题......
SignalR使用Json.NET,它绝对能够序列化Dictionary<string, string>
。 您应该能够以您在问题中建议的确切方式从JS代码访问字典。
您是否尝试过使用SignalR发送MyClass
实例? 如果是这样,它怎么会失败?
我变了:
XmlSerializer serializer = new XmlSerializer(typeof(T));
至:
DataContractSerializer serializer = new DataContractSerializer(typeof(T));
(并处理一些命名空间问题......)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.