Sdílet prostřednictvím


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.

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