Condividi tramite


SignalR: tipo di opzioni del protocollo hub MessagePack modificato

Il tipo di opzioni del protocollo hub MessagePack SignalR ASP.NET Core è cambiato da IList<MessagePack.IFormatterResolver> al tipo della libreria MessagePackMessagePackSerializerOptions.

Per informazioni su questa modifica, vedi dotnet/aspnetcore#20506.

Versione introdotta

5.0 Preview 4

Comportamento precedente

Puoi aggiungere le opzioni come illustrato nell'esempio seguente:

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

E sostituire le opzioni come indicato di seguito:

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

Nuovo comportamento

Puoi aggiungere le opzioni come illustrato nell'esempio seguente:

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

E sostituire le opzioni come indicato di seguito:

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

Motivo della modifica

Questa modifica fa parte del passaggio a MessagePack v2.x, annunciato in aspnet/Announcements#404. La libreria v2.x ha aggiunto un'API di opzioni più semplice da usare e che offre più funzionalità rispetto all'elenco di MessagePack.IFormatterResolver esposte in precedenza.

Questa modifica che causa un'interruzione riguarda chiunque configuri i valori in MessagePackHubProtocolOptions. Se usi il protocollo hub MessagePack SignalR ASP.NET Core e modifichi le opzioni, aggiorna l'utilizzo per usare la nuova API delle opzioni, come illustrato in precedenza.

API interessate

Microsoft.AspNetCore.SignalR.MessagePackHubProtocolOptions