【发布时间】:2014-03-21 18:12:38
【问题描述】:
使用 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)
我正在使用反射调用 HubProxy,并且我传入了一些触发此错误的空参数(又名,Object[] args 中的某些项目为空)。但是,将 null 作为参数传递给方法是完全合法的做法。这是 SignalR 中的错误,它试图序列化 null 参数,还是 Json.NET (v6.0.1) 中的错误,它不应该尝试序列化 null 对象?
【问题讨论】:
-
@tweellt,我检查了那个链接。这似乎是一个类似的错误,但不是类似的情况。
-
您是否尝试了另一个序列化? javascriptserializer?
-
@Dmitry,我没有尝试用任何其他框架替换 SignalR 中的序列化。我真的很喜欢 Json.NET 并且不想替换它。我在软件的许多其他地方都使用了它。
-
显示为您的代码! :)
标签: c# json.net signalr signalr-hub