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.
Azione consigliata
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.