SignalR .Net Core 3.1无法从服务类使用SendAsync方法发送对象

问题描述 投票:0回答:1

[以前,我使用的是.Net Core 2.2,我能够使用集线器上下文和SendAsync方法将来自服务类的json对象发送到前端Web客户端。将项目框架升级到3.1后,我遇到了问题。如果我使用json对象调用SendAsync方法,则如果我发送任何其他类,它将遇到一个错误,指出“ {” 不支持集合类型'Newtonsoft.Json.Linq.JObject'。“}”对象,它将直接转到OnDisconnected

我使用的方法的示例

使用Json对象:等待_hubContext.Clients.Group(groupName).SendAsync(“ NotificationResponse”,jsonObject);

使用类对象:等待_hubContext.Clients.Group(groupName).SendAsync(“ NotificationResponse”,notificationObject);

我尝试直接从集线器发送对象,我能够发送普通的类对象,但不能发送json对象。我对项目进行了测试,并从本教程中进行了采样:https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr?view=aspnetcore-3.1&tabs=visual-studio

json signalr upgrade asp.net-core-3.1 .net-core-3.1
1个回答
0
投票

我在github上发布了这个问题,并从BrennanConroy获得了答案。非常感谢!

他的回答是:

2.1在内部将Newtonsoft用于Json,3.1使用System.Text.Json。如果使用的功能不适用于System.Text.Json,则可以切换回Newtonsoft https://docs.microsoft.com/aspnet/core/migration/22-to-30?view=aspnetcore-3.1&tabs=visual-studio#switch-to-newtonsoftjson

完成此操作后,问题已解决。

© www.soinside.com 2019 - 2024. All rights reserved.