SignalR: Změna typu možností protokolu centra MessagePack
Typ možností protokolu ASP.NET Core SignalR MessagePack Hub Protocol se změnil z IList<MessagePack.IFormatterResolver>
typu knihovny MessagePackSerializerOptions
MessagePack.
Diskuzi o této změně najdete v tématu dotnet/aspnetcore#20506.
Zavedená verze
5.0 Preview 4
Staré chování
Můžete přidat do možností, jak je znázorněno v následujícím příkladu:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.FormatterResolvers.Add(MessagePack.Resolvers.StandardResolver.Instance);
});
A nahraďte tyto možnosti následujícím způsobem:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.FormatterResolvers = new List<MessagePack.IFormatterResolver>()
{
MessagePack.Resolvers.StandardResolver.Instance
};
});
Nové chování
Můžete přidat do možností, jak je znázorněno v následujícím příkladu:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.SerializerOptions =
options.SerializeOptions.WithResolver(MessagePack.Resolvers.StandardResolver.Instance);
});
A nahraďte tyto možnosti následujícím způsobem:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.SerializerOptions = MessagePackSerializerOptions
.Standard
.WithResolver(MessagePack.Resolvers.StandardResolver.Instance)
.WithSecurity(MessagePackSecurity.UntrustedData);
});
Důvod změny
Tato změna je součástí přechodu na MessagePack verze 2.x, která byla oznámena v aspnet/Announcements#404. Knihovna v2.x přidala rozhraní API možností, které se snadněji používá a poskytuje více funkcí než seznam MessagePack.IFormatterResolver
, který byl zpřístupněn dříve.
Doporučená akce
Tato změna způsobující chybu ovlivní každého, kdo konfiguruje hodnoty MessagePackHubProtocolOptions. Pokud používáte protokol centra ASP.NET Core SignalR MessagePack Hub a upravujete možnosti, aktualizujte využití tak, aby používalo nové rozhraní API možností, jak je znázorněno výše.