Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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)