System.Text.Json 이제 인스턴스의 IAsyncEnumerable<T> 직렬화 및 역직렬화를 지원합니다.
이전 동작
이전 버전 System.Text.Json 에서는 인스턴스를 빈 JSON 개체(IAsyncEnumerable<T>)로 직렬화 {}
했습니다. 역직렬화가 JsonException로 실패했습니다.
새 동작
이제 비동기 serialization 메서드는 개체 그래프의 모든 IAsyncEnumerable<T> 인스턴스를 열거한 다음 JSON 배열로 serialize합니다. 동기화된 직렬화 메서드는 IAsyncEnumerable<T> 직렬화를 지원하지 않으며 NotSupportedException를 발생시킵니다.
도입된 버전
.NET 6
파괴적 변경 유형
이 변경 사항은 소스 호환성에 영향을 줄 수 있습니다. .NET 6으로 대상을 변경하면 컴파일 시간 오류가 발생하지 않지만 런타임 serialization 동작 차이가 발생할 수 있습니다.
변경 이유
이 변경 내용은 ASP.NET Core MVC에서 스트리밍 IAsyncEnumerable<T> 응답에 대한 지원을 추가하기 위해 도입되었습니다.
권장 작업
serialization 모델에 구현 IAsyncEnumerable<T> 하는 형식이 포함되어 있는지 확인하고 JSON 출력에서 열거형을 내보내는 것이 바람직한지 확인합니다. IAsyncEnumerable<T> serialization을 다음 방법 중 하나로 사용하지 않도록 설정할 수 있습니다.
- 속성에 JsonIgnoreAttribute을(를) 연결하고 IAsyncEnumerable<T>을(를) 포함하십시오.
- 인스턴스를 빈 JSON 객체로 serialize하는 IAsyncEnumerable<T>를 정의합니다.
영향을 받는 API
참고하십시오
.NET