SignalR: MessagePack Hub Protokolü seçenekleri türü değiştirildi

ASP.NET Core SignalR MessagePack Hub Protokolü seçenekleri türü, MessagePack kitaplığının MessagePackSerializerOptionstürüne değiştirildiIList<MessagePack.IFormatterResolver>.

Bu değişiklikle ilgili tartışma için bkz . dotnet/aspnetcore#20506.

Sürüm kullanıma sunulmuştur

5.0 Önizleme 4

Eski davranış

Aşağıdaki örnekte gösterildiği gibi seçeneklere ekleyebilirsiniz:

services.AddSignalR()
    .AddMessagePackProtocol(options =>
    {
        options.FormatterResolvers.Add(MessagePack.Resolvers.StandardResolver.Instance);
    });

Seçenekleri aşağıdaki gibi değiştirin:

services.AddSignalR()
    .AddMessagePackProtocol(options =>
    {
        options.FormatterResolvers = new List<MessagePack.IFormatterResolver>()
        {
            MessagePack.Resolvers.StandardResolver.Instance
        };
    });

Yeni davranış

Aşağıdaki örnekte gösterildiği gibi seçeneklere ekleyebilirsiniz:

services.AddSignalR()
    .AddMessagePackProtocol(options =>
    {
        options.SerializerOptions =
            options.SerializeOptions.WithResolver(MessagePack.Resolvers.StandardResolver.Instance);
    });

Seçenekleri aşağıdaki gibi değiştirin:

services.AddSignalR()
    .AddMessagePackProtocol(options =>
    {
        options.SerializerOptions = MessagePackSerializerOptions
                .Standard
                .WithResolver(MessagePack.Resolvers.StandardResolver.Instance)
                .WithSecurity(MessagePackSecurity.UntrustedData);
    });

Değişiklik nedeni

Bu değişiklik, aspnet/Announcements#404'te duyurulan MessagePack v2.x'e geçmenin bir parçasıdır. v2.x kitaplığı, kullanımı daha kolay bir seçenek API'sini eklemiştir ve daha önce kullanıma sunulan listeden MessagePack.IFormatterResolver daha fazla özellik sağlar.

Bu hataya neden olan değişiklik, üzerinde MessagePackHubProtocolOptionsdeğerleri yapılandıran herkesi etkiler. ASP.NET Core SignalR MessagePack Hub Protokolü kullanıyor ve seçenekleri değiştiriyorsanız, yukarıda gösterildiği gibi yeni seçenekler API'sini kullanmak için kullanımınızı güncelleştirin.

Etkilenen API’ler

Microsoft.AspNetCore.SignalR.MessagePackHubProtocolOptions