Dela via


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.

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.

Berörda API:er

Microsoft.AspNetCore.SignalR.MessagePackHubProtocolOptions