다음을 통해 공유


System.Text.Json IAsyncEnumerable 직렬화

System.Text.Json에서 이제 IAsyncEnumerable<T> 인스턴스의 직렬화 및 역직렬화를 지원합니다.

이전 동작

이전 버전에서는 System.Text.Json에서 IAsyncEnumerable<T> 인스턴스를 빈 JSON 개체({})로서 직렬화했습니다. 역직렬화는 JsonException이 발생하면서 실패했습니다.

새 동작

이제 비동기 직렬화 메서드는 개체 그래프의 모든 IAsyncEnumerable<T> 인스턴스를 열거한 다음 JSON 배열로 직렬화합니다. 비동기 직렬화 메서드는 IAsyncEnumerable<T> 직렬화를 지원하지 않고 NotSupportedException을 throw합니다.

도입된 버전

.NET 6

호환성이 손상되는 변경의 형식

이 변경은 소스 호환성에 영향을 줄 수 있습니다. .NET 6으로 대상을 변경하는 경우 컴파일 시간 오류가 발생하지 않지만 런타임 직렬화 동작 차이가 발생할 수 있습니다.

변경 이유

이 변경은 ASP.NET Core MVC에서 IAsyncEnumerable<T> 응답을 스트리밍하는 기능을 지원하기 위해 도입되었습니다.

직렬화 모델에 IAsyncEnumerable<T>을 구현하는 형식이 포함되어 있는지 확인하고 JSON 출력에서 열거형을 내보내는 것이 바람직한지 판단합니다. 다음 방법 중 하나를 이용해 IAsyncEnumerable<T> 직렬화를 비활성화할 수 있습니다.

영향을 받는 API

참고 항목