Проблема локализации .Net
-
03-07-2019 - |
Вопрос
В настоящее время я создаю надстройку Excel 2007 с использованием VSTO (последняя версия + sp1) и .Net 3.5
Код просто берет положение диаграммы, используя свойства Top и Left, и сохраняет его в файле XML.
Проблема, с которой я сталкиваюсь, заключается в том, что при создании xml с использованием среды Vista Ultimate + Excel 2007 + на английском языке код работает отлично. Когда я перемещаю это в среду Windows Server 2003 + Excel 2007 + French, происходит сбой при попытке установить свойства Top и Left. Более того, он всегда возвращает 4 для обоих значений на сервере.
Я пытался поиграть с настройками региона и языка, но пока ничего не изменилось.
Я также попытался сохранить значения в виде целых чисел вместо значений с плавающей точкой, возвращаемых объектами VSTO.
Если у кого-то есть какая-то идея, что может быть не так, пожалуйста, укажите мне правильное направление.
Я отредактирую, как только прослежу еще немного ...
Решение
Я не уверен, поможет ли это или нет, но вы можете проверить класс System.Xml.XmlConvert. Этот класс позволит вам сериализовать типы данных в строковое значение, которое не зависит от локали. Когда вы извлекаете XML на другом компьютере, вы можете преобразовать значение обратно в соответствующий тип данных, используя тот же класс, и он примет Культуру текущей среды. Р>
Другие советы
Вам необходимо опубликовать дополнительную информацию о том, что именно вы делаете и какую ошибку вы видите. Возможно, вам нужно форматировать / анализировать числовые значения с помощью CultureInfo.InvariantCulture, а не по умолчанию CultureInfo.CurrentCulture.