다음을 통해 공유


컬렉션 속성의 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 직렬화 및 역직렬화 방법.