[英]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.