型パラメーターが null の場合に JsonSerializer.Serialize によって ArgumentNullException がスローされる
Type の型パラメーターに null
が渡されるたびに、そのパラメーターを持つ JsonSerializer.Serialize、JsonSerializer.SerializeAsync、JsonSerializer.SerializeToUtf8Bytes のオーバーロードによって ArgumentNullException がスローされるようになりました。
変更内容
.NET Core 3.1 では、Type inputType
パラメーターに null
が渡されると、Type パラメーターを持つ JsonSerializer.Serialize、JsonSerializer.SerializeAsync(Stream, Object, Type, JsonSerializerOptions, CancellationToken)、JsonSerializer.SerializeToUtf8Bytes(Object, Type, JsonSerializerOptions) のオーバーロードによって ArgumentNullException がスローされますが、Object value
パラメーターも null
の場合はされません。 .NET 5 以降では、null
が Type パラメーターに渡されると、これらのメソッドによって "常に" ArgumentNullException がスローされます。
.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);
.NET 5 以降での動作:
// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.Serialize(null, null);
// Throws ArgumentNullException: "Value cannot be null. (Parameter 'inputType')".
JsonSerializer.SerializeToUtf8Bytes(null, null);
導入されたバージョン
5.0
変更理由
Type inputType
パラメーターに null
を渡すことは許容されておらず、常に ArgumentNullException をスローする必要があります。
推奨される操作
これらのメソッドの Type inputType
パラメーターに null
が渡されていないことを確認します。
影響を受ける 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)
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示