형식 매개 변수가 null인 경우 JsonSerializer.Serialize에서 ArgumentNullException을 throw함
Type 형식의 매개 변수가 있는 JsonSerializer.Serialize, JsonSerializer.SerializeAsync 및 JsonSerializer.SerializeToUtf8Bytes 오버로드는 해당 매개 변수에 대해 null
이 전달될 때마다 ArgumentNullException을 throw합니다.
변경 내용 설명
.NET Core 3.1에서 Type 매개 변수가 있는 JsonSerializer.Serialize, JsonSerializer.SerializeAsync(Stream, Object, Type, JsonSerializerOptions, CancellationToken), JsonSerializer.SerializeToUtf8Bytes(Object, Type, JsonSerializerOptions) 오버로드는 Type inputType
매개 변수에 대해 null
이 전달될 때 ArgumentNullException을 throw하지만 Object value
매개 변수도 null
인 경우에는 예외를 throw하지 않습니다. .NET 5부터 해당 메서드는 Type 매개 변수에 대해 null
이 전달될 때 ‘항상’ ArgumentNullException을 throw합니다.
.NET Core 3.1의 동작:
// Returns a string with value "null".
JsonSerializer.Serialize(null, null);
// Returns a byte array with value "null".
JsonSerializer.SerializeToUtf8Bytes(null, null);
.NET 5 이상의 동작:
// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.Serialize(null, null);
// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.SerializeToUtf8Bytes(null, null);
도입된 버전
5.0
변경 이유
Type inputType
매개 변수에 대해 null
을 전달할 수 없으며 항상 ArgumentNullException이 throw되어야 합니다.
권장 작업
해당 메서드의 Type inputType
매개 변수에 대해 null
을 전달하지 않습니다.
영향을 받는 API
- System.Text.Json.JsonSerializer.Serialize(Object, Type, JsonSerializerOptions)
- System.Text.Json.JsonSerializer.Serialize(Utf8JsonWriter, Object, Type, JsonSerializerOptions)
- System.Text.Json.JsonSerializer.SerializeAsync(Stream, Object, Type, JsonSerializerOptions, CancellationToken)
- System.Text.Json.JsonSerializer.SerializeToUtf8Bytes(Object, Type, JsonSerializerOptions)
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기