JsonSerializer.Serialize genera ArgumentNullException quando il parametro di tipo è null
Gli overload JsonSerializer.Serialize, JsonSerializer.SerializeAsync e JsonSerializer.SerializeToUtf8Bytes con un parametro di tipo Type ora generano un'eccezione ArgumentNullException ogni volta che null
viene passato per tale parametro.
Descrizione delle modifiche
In .NET Core 3.1, gli overload JsonSerializer.Serialize, JsonSerializer.SerializeAsync(Stream, Object, Type, JsonSerializerOptions, CancellationToken) e JsonSerializer.SerializeToUtf8Bytes(Object, Type, JsonSerializerOptions) con un parametro Type generano un'eccezione ArgumentNullException quando null
viene passato per il parametro Type inputType
, ma non se anche il parametro Object value
è null
. A partire da .NET 5, questi metodi generano sempre un'eccezione ArgumentNullException quando null
viene passato per il parametro Type.
Comportamento in .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);
Comportamento in .NET 5 e versioni successive:
// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.Serialize(null, null);
// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.SerializeToUtf8Bytes(null, null);
Versione introdotta
5.0
Motivo della modifica
Il passaggio di null
per il parametro Type inputType
non è accettabile e deve sempre generare ArgumentNullException.
Azione consigliata
Assicurati di non passare null
per il parametro Type inputType
di questi metodi.
API interessate
- 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)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per