Share via


JsonSerializer.Serialize 於型別參數為 null 時擲回 ArgumentNullException

具備型別參數 TypeJsonSerializer.SerializeJsonSerializer.SerializeAsyncJsonSerializer.SerializeToUtf8Bytes 多載,現在會於針對該參數傳遞 null 時擲回 ArgumentNullException

變更描述

在 .NET Core 3.1 中,具備 Type 參數的 JsonSerializer.SerializeJsonSerializer.SerializeAsync(Stream, Object, Type, JsonSerializerOptions, CancellationToken)JsonSerializer.SerializeToUtf8Bytes(Object, Type, JsonSerializerOptions) 多載會於針對 Type inputType 參數傳遞 null 時擲回 ArgumentNullException,但 Object value 參數同時為 null 時則不會擲回。 從 .NET 5 開始,這些方法一律會於針對 Type 參數傳遞 null 時擲回 ArgumentNullException

.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

請確認您未針對這些方法的 Type inputType 參數傳遞 null

受影響的 API