DataContractSerializer conserva su signo al deserializar -0
Antes, DataContractSerializer y DataContractJsonSerializer descartaban el signo al deserializar la entrada "-0" como float o double. El comportamiento de ambos serializadores siempre ha sido correcto cuando la entrada era "-0.0", pero cuando la entrada era "-0", el signo se perdía. Este comportamiento es incoherente y da lugar a pérdidas de datos. Además, estos serializadores escriben un valor de cero negativo como "-0" durante la serialización.
Comportamiento anterior
Antes, el signo negativo se perdía al deserializar "-0" (pero no "-0,0") como float o double mediante DataContractSerializer.
Comportamiento nuevo
Ahora, el signo negativo se conserva al deserializar "-0" como float o double.
Versión introducida
- .NET 6.0.11 (versión de mantenimiento)
- .NET 7
Tipo de cambio importante
Este cambio puede afectar a la compatibilidad binaria.
Motivo del cambio
El comportamiento anterior era incoherente y daba lugar a pérdidas de datos.
Acción recomendada
En la mayoría de los casos no es necesario realizar ninguna acción. Si su código se ha visto afectado por este error, este es un buen cambio. O quizá ya haya encontrado una solución a este error que seguramente este cambio no altere.
API afectadas
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de