DataContractSerializer mantiene il segno durante la deserializzazione di -0
DataContractSerializer e DataContractJsonSerializer in precedenza rimuovevano il segno durante la deserializzazione dell'input "-0" come float o double. Entrambi i serializzatori hanno sempre fatto la cosa giusta quando, dato "-0.0" come input, ma con un input di "-0", il segno si perdeva. Questo comportamento è incoerente e si traduce in una perdita di dati. Inoltre, questi serializzatori scrivono un valore negativo pari a zero come "-0" durante la serializzazione.
Comportamento precedente
In precedenza, il segno negativo si perdeva durante la deserializzazione di "-0" (ma non "-0.0") come float o double usando DataContractSerializer.
Nuovo comportamento
Il segno negativo ora viene mantenuto durante la deserializzazione di "-0" come float o double.
Versione introdotta
- .NET 6.0.11 (versione di manutenzione)
- .NET 7
Tipo di modifica che causa un'interruzione
Questa modifica può influire sulla compatibilità binaria.
Motivo della modifica
Il comportamento precedente era incoerente e causava la perdita di dati.
Azione consigliata
Nella maggior parte dei casi non è necessaria alcuna azione. Se il tuo codice è stato interessato dal bug, allora questa è una modifica valida. Oppure, hai già aggirato il bug in modo che difficilmente questa modifica ti riguarderà.