SignalR: Alternativtypen MessagePack Hub Protocol har ändrats
Alternativtypen ASP.NET Core SignalR MessagePack Hub Protocol har ändrats från IList<MessagePack.IFormatterResolver>
till MessagePack-bibliotekets MessagePackSerializerOptions
typ.
Information om den här ändringen finns i dotnet/aspnetcore#20506.
Version introducerad
5.0 Förhandsversion 4
Gammalt beteende
Du kan lägga till alternativen enligt följande exempel:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.FormatterResolvers.Add(MessagePack.Resolvers.StandardResolver.Instance);
});
Ersätt alternativen på följande sätt:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.FormatterResolvers = new List<MessagePack.IFormatterResolver>()
{
MessagePack.Resolvers.StandardResolver.Instance
};
});
Nytt beteende
Du kan lägga till alternativen enligt följande exempel:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.SerializerOptions =
options.SerializeOptions.WithResolver(MessagePack.Resolvers.StandardResolver.Instance);
});
Ersätt alternativen på följande sätt:
services.AddSignalR()
.AddMessagePackProtocol(options =>
{
options.SerializerOptions = MessagePackSerializerOptions
.Standard
.WithResolver(MessagePack.Resolvers.StandardResolver.Instance)
.WithSecurity(MessagePackSecurity.UntrustedData);
});
Orsak till ändringen
Den här ändringen är en del av övergången till MessagePack v2.x, som tillkännagavs i aspnet/Announcements#404. V2.x-biblioteket har lagt till ett alternativ-API som är enklare att använda och som innehåller fler funktioner än listan över MessagePack.IFormatterResolver
som visades tidigare.
Rekommenderad åtgärd
Den här icke-bakåtkompatibla ändringen påverkar alla som konfigurerar värden på MessagePackHubProtocolOptions. Om du använder ASP.NET Core SignalR MessagePack Hub Protocol och ändrar alternativen uppdaterar du din användning så att du använder det nya alternativ-API:et enligt ovan.