JsonSerializer.Serialize lève ArgumentNullException lorsque le paramètre de type a la valeur null
Les surcharges JsonSerializer.Serialize, JsonSerializer.SerializeAsync et JsonSerializer.SerializeToUtf8Bytes qui ont un paramètre de type Type lèvent désormais une ArgumentNullException chaque fois que null
est passé pour ce paramètre.
Description de la modification
Dans .NET Core 3.1, les surcharges JsonSerializer.Serialize, JsonSerializer.SerializeAsync(Stream, Object, Type, JsonSerializerOptions, CancellationToken) et JsonSerializer.SerializeToUtf8Bytes(Object, Type, JsonSerializerOptions) qui ont un paramètre Type lèvent une ArgumentNullException quand null
est passé pour le paramètre Type inputType
, mais pas si le paramètre Object value
est également null
. À compter de .NET 5, ces méthodes lèvent toujours une ArgumentNullException quand null
est passé pour le paramètre Type.
Comportement dans .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);
Comportement dans .NET 5 et versions ultérieures :
// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.Serialize(null, null);
// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.SerializeToUtf8Bytes(null, null);
Version introduite
5,0
Raison du changement
Il n’est pas acceptable de passer dans null
pour le paramètre Type inputType
. Une ArgumentNullException doit toujours être levée.
Action recommandée
Assurez-vous que vous ne passez null
pour le paramètre Type inputType
de ces méthodes.
API affectées
- 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)
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour