SignalR : Le type d’options du protocole MessagePack Hub a été modifié
Le type d’options du protocole MessagePack Hub dans SignalR est passé du type IList<MessagePack.IFormatterResolver>
au type MessagePackSerializerOptions
de la bibliothèque MessagePack.
Pour plus d’informations sur ce changement, consultez dotnet/aspnetcore#20506.
Version introduite
5.0 Préversion 4
Ancien comportement
Vous pouvez l’ajouter aux options comme indiqué dans l’exemple suivant :
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.FormatterResolvers.Add(MessagePack.Resolvers.StandardResolver.Instance);
});
Et remplacez les options comme suit :
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.FormatterResolvers = new List<MessagePack.IFormatterResolver>()
{
MessagePack.Resolvers.StandardResolver.Instance
};
});
Nouveau comportement
Vous pouvez l’ajouter aux options comme indiqué dans l’exemple suivant :
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.SerializerOptions =
options.SerializeOptions.WithResolver(MessagePack.Resolvers.StandardResolver.Instance);
});
Et remplacez les options comme suit :
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.SerializerOptions = MessagePackSerializerOptions
.Standard
.WithResolver(MessagePack.Resolvers.StandardResolver.Instance)
.WithSecurity(MessagePackSecurity.UntrustedData);
});
Raison du changement
Ce changement fait partie du passage à MessagePack v2.x, qui a été annoncé dans aspnet/Announcements#404. La bibliothèque v2.x a ajouté une API d’options plus facile à utiliser et fournit plus de fonctionnalités que la liste des MessagePack.IFormatterResolver
exposée précédemment.
Action recommandée
Ce changement cassant affecte toute personne qui configure des valeurs sur MessagePackHubProtocolOptions. Si vous utilisez le protocole MessagePack Hub dans SignalR ASP.NET Core et que vous modifiez les options, mettez à jour votre utilisation pour utiliser la nouvelle API d’options, comme indiqué ci-dessus.