Partilhar via


SignalR: Tipo de opções do MessagePack Hub Protocol alterado

O tipo de opções do ASP.NET Core SignalR MessagePack Hub Protocol foi alterado de IList<MessagePack.IFormatterResolver> para o tipo de da biblioteca MessagePackSerializerOptions.

Para discussão sobre essa alteração, consulte dotnet/aspnetcore#20506.

Versão introduzida

5.0 Prévia 4

Comportamento antigo

Você pode adicionar às opções conforme mostrado no exemplo a seguir:

services.AddSignalR()
    .AddMessagePackProtocol(options =>
    {
        options.FormatterResolvers.Add(MessagePack.Resolvers.StandardResolver.Instance);
    });

E substitua as opções da seguinte forma:

services.AddSignalR()
    .AddMessagePackProtocol(options =>
    {
        options.FormatterResolvers = new List<MessagePack.IFormatterResolver>()
        {
            MessagePack.Resolvers.StandardResolver.Instance
        };
    });

Novo comportamento

Você pode adicionar às opções conforme mostrado no exemplo a seguir:

services.AddSignalR()
    .AddMessagePackProtocol(options =>
    {
        options.SerializerOptions =
            options.SerializeOptions.WithResolver(MessagePack.Resolvers.StandardResolver.Instance);
    });

E substitua as opções da seguinte forma:

services.AddSignalR()
    .AddMessagePackProtocol(options =>
    {
        options.SerializerOptions = MessagePackSerializerOptions
                .Standard
                .WithResolver(MessagePack.Resolvers.StandardResolver.Instance)
                .WithSecurity(MessagePackSecurity.UntrustedData);
    });

Motivo da mudança

Esta alteração faz parte da mudança para o MessagePack v2.x, que foi anunciado em aspnet/Announcements#404. A biblioteca v2.x adicionou uma API de opções que é mais fácil de usar e fornece mais recursos do que a lista de MessagePack.IFormatterResolver que foi exposta anteriormente.

Esta alteração crítica afeta todos os que estão a configurar valores no MessagePackHubProtocolOptions. Se você estiver usando o ASP.NET Core SignalR MessagePack Hub Protocol e modificando as opções, atualize seu uso para usar a nova API de opções, conforme mostrado acima.

APIs afetadas

Microsoft.AspNetCore.SignalR.MessagePackHubProtocolOptions