Baca dalam bahasa Inggris

Bagikan melalui


DataContractSerializer mempertahankan tanda saat deserialisasi -0

DataContractSerializer dan DataContractJsonSerializer sebelumnya membuang tanda saat mendeserialisasi input "-0" sebagai float atau ganda. Kedua serializer selalu melakukan hal yang benar ketika diberikan "-0.0" sebagai input, tetapi dengan input "-0", tanda hilang. Perilaku ini tidak konsisten dan mengalihkan kehilangan data. Selain itu, serializer ini menulis nilai negatif nol keluar sebagai "-0" selama serialisasi.

Perilaku sebelumnya

Sebelumnya, tanda negatif hilang ketika deserialisasi "-0" (tetapi bukan "-0,0") sebagai float atau ganda menggunakan DataContractSerializer.

Perilaku yang baru

Tanda negatif sekarang dipertahankan ketika deserialisasi "-0" sebagai float atau ganda.

Versi yang diperkenalkan

  • .NET 6.0.11 (rilis layanan)
  • .NET 7

Jenis perubahan yang melanggar

Perubahan ini dapat memengaruhi kompatibilitas biner.

Alasan untuk berubah

Perilaku sebelumnya tidak konsisten dan mengakibatkan kehilangan data.

Dalam kebanyakan kasus, tidak ada tindakan yang diperlukan. Jika kode Anda dipengaruhi oleh bug, maka ini adalah perubahan yang baik. Atau, Anda telah bekerja di sekitar bug dengan cara yang tidak mungkin dipecah oleh perubahan ini.

API yang Terpengaruh