Aracılığıyla paylaş


Tür parametresi null olduğunda JsonSerializer.Serialize ArgumentNullException oluşturur

JsonSerializer.Serialize, JsonSerializer.SerializeAsyncve JsonSerializer.SerializeToUtf8Bytes türünde Type bir parametresi olan aşırı yüklemeler artık bu parametre için her null geçirildiğinde bir ArgumentNullException oluşturur.

Açıklama değiştirildi

.NET Core 3.1'de, JsonSerializer.Serializeparametresi olan , JsonSerializer.SerializeAsync(Stream, Object, Type, JsonSerializerOptions, CancellationToken)ve JsonSerializer.SerializeToUtf8Bytes(Object, Type, JsonSerializerOptions) aşırı yüklemeleri Type parametre için Type inputType geçirildiğinde null bir ArgumentNullException oluşturur, ancak parametresi de nullise Object value olmaz. .NET 5'den başlayarak, bu yöntemler her zaman parametresi için Type geçirildiğinde null bir ArgumentNullException oluşturur.

.NET Core 3.1'deki davranış:

// Returns a string with value "null".
JsonSerializer.Serialize(null, null);

// Returns a byte array with value "null".
JsonSerializer.SerializeToUtf8Bytes(null, null);

.NET 5 ve sonraki sürümlerde davranış:

// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.Serialize(null, null);

// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.SerializeToUtf8Bytes(null, null);

Sürüm kullanıma sunulmuştur

5.0

Değişiklik nedeni

null parametresinin Type inputType geçirilmesi kabul edilemez ve her zaman bir ArgumentNullExceptionatmalıdır.

Bu yöntemlerin parametresini Type inputType geçirmediğinizden null emin olun.

Etkilenen API’ler