referencia por pasar pasaje parametros objetos mvc example como c# json.net signalr signalr-hub

c# - por - "El valor no puede ser nulo" al pasar argumentos nulos al proxy del lado del cliente de SignalR



signalr.client c# (2)

Usando SignalR (v2.0.2) obtengo esta excepción:

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)

Estoy llamando al HubProxy con reflexión, y estoy pasando algunos argumentos nulos que están desencadenando este error (también conocido como, algunos elementos en el Object[] args son nulos). Sin embargo, pasar nulo por un argumento a un método es algo perfectamente legítimo. ¿Es esto un error en SignalR en el sentido de que intenta serializar parámetros nulos o es un error en Json.NET (v6.0.1) en el sentido de que no debe intentar serializar un objeto nulo?


Puede intentar anular el método de invocación de los concentradores SignalR , por ejemplo: personalice Microsoft.AspNet.SignalR.AuthorizeAttribute siguiente manera:

public override bool AuthorizeHubMethodInvocation(IHubIncomingInvokerContext hubIncomingInvokerContext, bool appliesToMethod) { }

Luego, antes de invocar, puede verificar su solicitud y realizar algún procesamiento si es necesario.


Resulta que se trata de un error conocido en SignalR que se ha corregido y se incluirá en la próxima versión 2.2.1. Vea su boleto aquí .