gpt4 book ai didi

c# - 是否可以将字典从服务器发送到 c# 客户端?

转载 作者:太空宇宙 更新时间:2023-11-03 23:46:57 29 4
gpt4 key购买 nike

所以我可以毫无问题地发送像字符串这样的简单对象。我还可以将相同的词典发送到我的 javascript 客户端。但是,我似乎无法让我的 C# 客户端接收它。我假设这是因为在 javascript 客户端中不需要指定发送的类型,但在 C# 中需要指定。

这是客户端设置

 connection = new HubConnection(ServerURI);
hubProxy = connection.CreateHubProxy("ControllerHub");
hubProxy.On<Dictionary<Tuple<string, string>, RequestEntry>>("ReceiveTickerStateData", overviewDictionary => receiveTickerStateData(overviewDictionary));
connection.Start().Wait();

这是被触发发送字典的服务器代码,但客户端从未收到它。

public void GetTickerStateData()
{
Clients.Caller.ReceiveTickerStateData(DealTickerState.Instance.GetRequestDict);
}

任何见解或想法都会受到赞赏。谢谢!

------------------------添加

进一步的测试表明我正在使用元组 (string, string) 作为字典的键。显然 JSON 反序列化器不知道如何处理这个。给我错误:

无法将字符串 (DEFAULT, IDCO) 转换为字典键类型

System.Tuple`2[System.String,System.String]. Create a TypeConverter to convert from the string to the key type object. Path '['(DEFAULT, IDCO)']', line 1, position 19.

我通过手动序列化和发送字符串得到了这个。
我尝试发送一个只包含一个字符串作为键的字典,它既可以作为序列化字符串也可以正常工作。 (即signalR自动序列化)

那么现在要决定,我是否要创建类型转换器?还是我使用更简单的有效集合结构发送数据。

最佳答案

是的,作为 JSON。使用 JSON.NET,包含的 JavaScriptSerializer 将不起作用。您可以从 NuGet 获取 JSON.NET。将您的字典转换为 JSON 并将其作为字符串发送。在客户端,只需使用内置的 JSON.parse() 方法反序列化即可。

关于c# - 是否可以将字典从服务器发送到 c# 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27321093/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com