JsonSerializer.Serialize gibt eine ArgumentNullException-Ausnahme zurück, wenn für den Typparameter NULL gilt
JsonSerializer.Serialize-, JsonSerializer.SerializeAsync- und JsonSerializer.SerializeToUtf8Bytes-Überladungen, die einen Parameter vom Typ Type aufweisen, geben ab sofort eine ArgumentNullException-Ausnahme zurück, sobald null
für diesen Parameter übergeben wird.
Änderungsbeschreibung
In .NET Core 3.1 geben die JsonSerializer.Serialize-, JsonSerializer.SerializeAsync(Stream, Object, Type, JsonSerializerOptions, CancellationToken)- und JsonSerializer.SerializeToUtf8Bytes(Object, Type, JsonSerializerOptions)-Überladungen, die über einen Type-Parameter verfügen, eine ArgumentNullException-Ausnahme zurück, wenn null
für den Type inputType
-Parameter übergeben wird, jedoch nicht, wenn für den Object value
-Parameter auch null
gilt. Ab .NET 5 geben diese Methoden immer eine ArgumentNullException-Ausnahme zurück, wenn null
für den Type-Parameter übergeben wird.
Verhalten 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);
Verhalten in .NET 5 und höher:
// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.Serialize(null, null);
// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.SerializeToUtf8Bytes(null, null);
Eingeführt in Version
5.0
Grund für die Änderung
Das Übergeben von null
für den Type inputType
-Parameter wird nicht akzeptiert und sollte immer eine ArgumentNullException-Ausnahme auslösen.
Empfohlene Maßnahme
Achten Sie darauf, null
nicht für den Type inputType
-Parameter dieser Methoden zu übergeben.
Betroffene APIs
- 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)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für