DataContractSerializer uchovává znaménko při deserializaci -0.
DataContractSerializer a DataContractJsonSerializer dříve zahodil znaménko při deserializaci vstupu "-0" jako plovoucí nebo dvojité. Oba serializátory vždy udělaly správnou věc při zadání "-0,0" jako vstup, ale se vstupem "-0", znaménko bylo ztraceno. Toto chování je nekonzistentní a vede ke ztrátě dat. Kromě toho tyto serializátory zapisují hodnotu záporné nuly jako -0 během serializace.
Předchozí chování
Dříve bylo záporné znaménko ztraceno při deserializaci "-0" (ale ne "-0,0") jako plovoucí nebo dvojité použití DataContractSerializer.
Nové chování
Záporné znaménko je nyní zachováno při deserializaci "-0" jako plovoucí nebo dvojité.
Zavedená verze
- .NET 6.0.11 (servisní verze)
- .NET 7
Typ zásadní změny
Tato změna může ovlivnit binární kompatibilitu.
Důvod změny
Předchozí chování bylo nekonzistentní a vedlo ke ztrátě dat.
Doporučená akce
Ve většině případů není potřeba žádná akce. Pokud chyba ovlivnila váš kód, je to dobrá změna. Nebo už jste tuto chybu vyřešili tak, že by tato změna pravděpodobně neporušila.
Ovlivněná rozhraní API
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro