다음을 통해 공유


형식 매개 변수가 null인 경우 JsonSerializer.Serialize에서 ArgumentNullException을 throw함

Type 형식의 매개 변수가 있는 JsonSerializer.Serialize, JsonSerializer.SerializeAsyncJsonSerializer.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