Я использую SignalR для передачи коллекции объектов подклассов клиентам.Поскольку данные должны отправляться довольно часто, и их объем значителен, я бы хотел использовать протокол MessagePack для сериализации.Однако мне не удалось найти информацию о том, как настроить SignalR , чтобы включить десериализацию для получения коллекции не базового класса, а производных классов.
Вот общая информация о конфигурации Протокол MessagePack Hub
С сериализацией Json это можно сделать следующим образом:
Код сервера:
public void ConfigureServices(IServiceCollection services)
{
//...
services.AddSignalR()
.AddJsonProtocol(options => options.PayloadSerializerSettings.TypeNameHandling = TypeNameHandling.Auto);
}
Клиенткод:
_connection = new HubConnectionBuilder()
.AddJsonProtocol(options => options.PayloadSerializerSettings.TypeNameHandling = TypeNameHandling.Auto)
.Build();