다음을 통해 공유


SignalR: MessagePack 허브 프로토콜 옵션 형식이 변경됨

ASP.NET Core SignalR MessagePack 허브 프로토콜 옵션 형식이 IList<MessagePack.IFormatterResolver>에서 MessagePack 라이브러리의 MessagePackSerializerOptions 형식으로 변경되었습니다.

이 문제에 관한 자세한 내용은 dotnet/aspnetcore#20506을 참조하세요.

도입된 버전

5.0 미리 보기 4

이전 동작

다음 예제와 같이 옵션에 추가할 수 있습니다.

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

옵션을 다음과 같이 바꿉니다.

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

새 동작

다음 예제와 같이 옵션에 추가할 수 있습니다.

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

옵션을 다음과 같이 바꿉니다.

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

변경 이유

이 변경은 aspnet/Announcements#404에서 발표된 MessagePack v2.x로 이동하는 과정의 일부입니다. v2.x 라이브러리는 더 쉽게 사용할 수 있는 옵션 API를 추가했으며 이전에 공개된 MessagePack.IFormatterResolver 목록보다 많은 기능을 제공합니다.

이 주요 변경 내용은 MessagePackHubProtocolOptions에서 값을 구성하는 모두에게 영향을 줍니다. ASP.NET Core SignalR MessagePack 허브 프로토콜을 사용하고 옵션을 수정하는 경우 위와 같이 새 옵션 API를 사용하도록 사용법을 업데이트합니다.

영향을 받는 API

Microsoft.AspNetCore.SignalR.MessagePackHubProtocolOptions