Десятичная точка удалена из десятичных знаков в сериализованном XML - PullRequest
2 голосов
/ 03 января 2011

Я использую XmlSerializer с классами, созданными из xsd с использованием xsd.exe.Это работало отлично в течение нескольких месяцев.

Теперь я получаю отчеты о том, что в некоторых случаях созданный xml-файл имеет все десятичные числа, сериализованные без десятичной точки, например, 123.45 сериализуется как 12345.

Я не смог воспроизвестипроблема, но я подозреваю, что это может быть связано с локализацией.

Это мой первый проект на C #, поэтому я могу пропустить что-то простое.

Может ли локализация вызвать эту проблему?
Как сделать язык процесса сериализации независимым?

Есть идеи о том, что может вызвать эту проблему?

1 Ответ

2 голосов
/ 03 января 2011

В некоторых странах они используют запятую в качестве десятичного разделителя и точку для разделения тысяч, так что ваша догадка может быть правдой. Если вы используете float или другой тип данных, который содержит десятичные дроби, XmlSerializer ни в коем случае не должен выбрасывать десятичные дроби. Однако, если в такой стране вы читаете XML без указания культуры, он может игнорировать точку.

Таким образом, XML, сериализованный в одной стране и десериализованный в другой стране, может вызвать проблемы, если вы не укажете что-то вроде InvariantCulture.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...