使用 SignalR 创建 Windows Forms .Net Core 应用程序

Creating Windows Forms .Net Core app with SignalR

我已经使用 SignalR .Net 客户端创建了一个 Windows Forms .Net Core 应用程序。我按照这篇文章 https://docs.microsoft.com/en-us/aspnet/core/signalr/dotnet-client?view=aspnetcore-5.0&tabs=visual-studio 添加包并连接到服务器。当服务器不为 serialization\deserialization 使用 NewtonsoftJson 时,一切正常。一旦我启用 NewtonsoftJson serialization\deserialization(serialization\deserialization 在服务器上 100% 正确工作,我可以使用写在 JavaScript 上的客户端进行测试),服务器上的属性与 JsonProperty 如下所示

[JsonProperty(PropertyName = "EDT")]
public List<UpdateEDT> EDTs { get; set; }

始终设置为 null,因为我怀疑 SignalR Core 客户端库不会使用 NewtonsoftJson 序列化 类。我尝试安装 Microsoft.AspNetCore.Mvc.NewtonsoftJson 和 Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson nuget 包并尝试添加 AddNewtonsoftJsonProtocol() 如下

connection = new HubConnectionBuilder()
                .WithUrl("https://xxxxx/chat?access_token=" + token)
                .AddNewtonsoftJsonProtocol()
                .WithAutomaticReconnect()
                .Build();            

但是找不到 AddNewtonsoftJsonProtocol()。我的问题是如何配置 SignalR .Net Core 客户端库以使用 Newtonsoft 进行序列化和反序列化?谢谢

事实证明我做的一切都是正确的,但是错过了一个 using 语句:

using Microsoft.Extensions.DependencyInjection;