No busques más por todo internet porque llegaste al espacio justo, tenemos la respuesta que buscas sin complicarte.
Permítanme citar la respuesta de anurse en GitHub:
Dado que los protocolos son conectables, las opciones se movieron a una ubicación diferente porque puede optar por no usar JSON en absoluto. Ahora los configura en el método de extensión .AddJsonProtocol en ConfigureServices, así:
services.AddSignalR()
.AddJsonProtocol(options =>
// Edit or replace 'options.PayloadSerializerSettings' here!
);
En función de este problema del repositorio de SignalR Core, no existe una forma nativa de hacerlo en este momento, pero puede crear una resolución de contrato personalizada como se indica en este comentario sobre un problema antiguo de SignalR.
Dado que ese subproceso es para SignalR 2.2.0, hagamos que funcione para SignalR Core.
using System;
using System.Reflection;
using Microsoft.AspNetCore.SignalR.Infrastructure;
using Newtonsoft.Json.Serialization;
public class SignalRContractResolver : IContractResolver
private readonly Assembly _assembly;
private readonly IContractResolver _camelCaseContractResolver;
private readonly IContractResolver _defaultContractSerializer;
public SignalRContractResolver()
_defaultContractSerializer = new DefaultContractResolver();
_camelCaseContractResolver = new CamelCasePropertyNamesContractResolver();
_assembly = typeof(Connection).GetTypeInfo().Assembly;
public JsonContract ResolveContract(Type type)
if (type.GetTypeInfo().Assembly.Equals(_assembly))
return _defaultContractSerializer.ResolveContract(type);
return _camelCaseContractResolver.ResolveContract(type);
Lo que sucede aquí es que no puede usar la resolución de contratos de camel case para las partes internas de SignalR, porque interrumpiría la comunicación con el cliente.
Así que cada vez que resolvemos un contrato en el ResolveContract
tenemos que verificar el ensamblado del tipo actualmente resuelto y verificar si es SignalR interno. Si no, entonces podemos resolver el contrato usando camel case.
En este punto, necesitamos registrar esta resolución de contrato en el marco.
public void ConfigureServices(IServiceCollection services)
var settings = new JsonSerializerSettings();
settings.ContractResolver = new SignalRContractResolver();
var serializer = JsonSerializer.Create(settings);
services.Add(new ServiceDescriptor(typeof(JsonSerializer),
provider => serializer,
ServiceLifetime.Transient));
// register other services like SignalR, MVC and custom services
¡La mejor de las suertes!
A partir de la primera versión alfa final de signalR core (1.0.0-alpha1-final), puede obtener un caso de camello como el fragmento de código a continuación de forma nativa:
services.AddSignalR(option =>
option.JsonSerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
);
De hecho, también puede emplear cualquier resolución personalizada en lugar de CamelCasePropertyNamesContractResolver
.
Aquí puedes ver las comentarios y valoraciones de los usuarios
Si haces scroll puedes encontrar las ilustraciones de otros creadores, tú asimismo tienes la opción de insertar el tuyo si te apetece.