JsonSerializer.Serialize zgłasza wyjątek ArgumentNullException, gdy parametr typu ma wartość null
JsonSerializer.Serialize, JsonSerializer.SerializeAsynci JsonSerializer.SerializeToUtf8Bytes przeciążenia, które mają parametr typu Type teraz zgłaszać ArgumentNullException za każdym razem, gdy null
jest przekazywany dla tego parametru.
Opis zmiany
W programie .NET Core 3.1 JsonSerializer.Serializeprzeciążenia , JsonSerializer.SerializeAsync(Stream, Object, Type, JsonSerializerOptions, CancellationToken)i JsonSerializer.SerializeToUtf8Bytes(Object, Type, JsonSerializerOptions) , które mają Type parametr zgłaszany ArgumentNullException podczas null
przekazywania parametru dla parametru Type inputType
, ale nie wtedy, gdy Object value
parametr jest również null
. Począwszy od platformy .NET 5, te metody zawsze zgłaszają ArgumentNullException błąd po null
przekazaniu parametruType.
Zachowanie w programie .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);
Zachowanie w programie .NET 5 lub nowszym:
// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.Serialize(null, null);
// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.SerializeToUtf8Bytes(null, null);
Wprowadzona wersja
5,0
Przyczyna wprowadzenia zmiany
Przekazywanie null
parametru Type inputType
jest niedopuszczalne i zawsze powinno zgłaszać wartość ArgumentNullException.
Zalecana akcja
Upewnij się, że nie przekazujesz null
parametru Type inputType
tych metod.
Dotyczy interfejsów API
- 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)
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla