컬렉션 속성의 JsonNumberHandlingAttribute
JsonNumberHandlingAttribute 특성과 관련하여 .NET 6에서 사소한 주요 변경 사항이 도입되었습니다. 숫자가 아닌 값의 컬렉션인 속성에 특성을 적용하고 속성을 직렬화 또는 역직렬화하려고 하면 InvalidOperationException이 throw됩니다. 특성은 숫자 형식의 컬렉션인 속성에만 유효합니다. 예를 들면 다음과 같습니다.
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<int> MyList { get; set; }
이전 동작
직렬화 중에는 무시되었지만 JsonNumberHandlingAttribute는 숫자가 아닌 형식의 컬렉션인 속성에 적용될 수 있습니다. 예시:
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString)]
public List<MyClass> MyList { get; set; }
새 동작
.NET 6부터 숫자가 아닌 값의 컬렉션인 속성에 JsonNumberHandlingAttribute를 적용하고 속성을 직렬화 또는 역직렬화하려고 하면 InvalidOperationException이 throw됩니다.
도입된 버전
.NET 6
호환성이 손상되는 변경의 형식
이 변경은 이진 호환성에 영향을 줄 수 있습니다.
변경 이유
이 변경 사항은 숫자 처리 기능에 대한 성능 최적화의 부작용입니다.
권장 작업
호환되지 않는 컬렉션 속성에서 JsonNumberHandlingAttribute 특성을 제거합니다.
영향을 받는 API
모든 System.Text.Json.JsonSerializer 직렬화 및 역직렬화 방법.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET