将null参数传递给SignalR客户端代理时,"值不能为空"

Bra*_*non 10 c# json.net signalr signalr-hub

使用SignalR(v2.0.2)我得到了这个例外:

Value cannot be null.
Parameter name: o
   at Newtonsoft.Json.Utilities.ValidationUtils.ArgumentNotNull(Object value, String parameterName)
   at Newtonsoft.Json.Linq.JToken.FromObjectInternal(Object o, JsonSerializer jsonSerializer)
   at Newtonsoft.Json.Linq.JToken.FromObject(Object o, JsonSerializer jsonSerializer)
   at Microsoft.AspNet.SignalR.Client.Hubs.HubProxy.Invoke[T](String method, Object[] args)
Run Code Online (Sandbox Code Playgroud)

我正在使用反射调用HubProxy,并且我传入了一些触发此错误的空参数(也就是说,其中的一些项Object[] args为null).但是,将参数传递给方法的null是完全合法的事情.这是SignalR中的一个错误,因为它试图序列化空参数,或者它是否是Json.NET(v6.0.1)中的一个错误,因为它不应该尝试序列化一个空对象?

dad*_*999 0

事实证明,这是 SignalR 中的一个已知错误,已修复并将包含在即将发布的 2.2.1 版本中。在这里查看他们的门票。

  • 2.4 中仍然发生 (3认同)