【发布时间】:2021-07-05 01:46:23
【问题描述】:
我使用 SignalR .Net 客户端创建了一个 Windows Forms .Net Core 应用程序。我按照这篇文章https://docs.microsoft.com/en-us/aspnet/core/signalr/dotnet-client?view=aspnetcore-5.0&tabs=visual-studio添加包并连接到服务器。当服务器不使用 NewtonsoftJson 进行序列化\反序列化时,一切正常。一旦我启用 NewtonsoftJson 序列化\反序列化(序列化\反序列化在服务器上 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 进行序列化和反序列化?谢谢。
【问题讨论】:
标签: json .net-core json.net signalr