簡體   English   中英

使用SignalR,如何向Javascript發送字典(關聯數組)?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM