SignalR: Optionstyp für das MessagePack-Hubprotokoll geändert
Der Optionstyp für das SignalR-MessagePack-Hubprotokoll in ASP.NET Core wurde von IList<MessagePack.IFormatterResolver>
in den MessagePack-MessagePackSerializerOptions
-Typ der Bibliothek geändert.
Diese Änderung wird unter dotnet/aspnetcore#20506 behandelt.
Eingeführt in Version
5.0 Preview 4
Altes Verhalten
Sie können den Optionen wie im folgenden Beispiel gezeigt Elemente hinzufügen:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.FormatterResolvers.Add(MessagePack.Resolvers.StandardResolver.Instance);
});
Folgendermaßen können Sie Optionen ersetzen:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.FormatterResolvers = new List<MessagePack.IFormatterResolver>()
{
MessagePack.Resolvers.StandardResolver.Instance
};
});
Neues Verhalten
Sie können den Optionen wie im folgenden Beispiel gezeigt Elemente hinzufügen:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.SerializerOptions =
options.SerializeOptions.WithResolver(MessagePack.Resolvers.StandardResolver.Instance);
});
Folgendermaßen können Sie Optionen ersetzen:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.SerializerOptions = MessagePackSerializerOptions
.Standard
.WithResolver(MessagePack.Resolvers.StandardResolver.Instance)
.WithSecurity(MessagePackSecurity.UntrustedData);
});
Grund für die Änderung
Diese Änderung ist Teil der Umstellung auf MessagePack 2.x, die unter aspnet/Announcements#404 angekündigt wurde. Der Bibliothek von Version 2.x wurde eine Options-API hinzugefügt, die einfacher zu verwenden ist und mehr Features als die zuvor verfügbare MessagePack.IFormatterResolver
-Liste bietet.
Empfohlene Aktion
Dieser Breaking Change wirkt sich auf alle Benutzer aus, die Werte in MessagePackHubProtocolOptions konfigurieren. Wenn Sie das SignalR-MessagePack-Hubprotokoll in ASP.NET Core verwenden und die Optionen ändern, stellen Sie sicher, dass die neue Options-API wie oben veranschaulicht verwendet wird.