Очень важно учитывать намерение данных. Если вы выполняете сериализацию, обязательно используйте InvariantCulture.
Смотрите: http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.aspx
Из документации microsoft:
Данные динамической культуры
За исключением инвариантной культуры данные культуры являются динамическими. Это справедливо даже для предопределенных культур. ...
Внимание
При сохранении данных ваше приложение должно использовать культуру инвариантов, использовать двоичный формат или использовать определенный культурно-независимый формат. Данные, сохраненные в соответствии с текущими значениями, связанными с определенной культурой, отличными от инвариантной культуры, могут стать нечитаемыми или могут измениться по смыслу, если эта культура изменится.
Я недавно столкнулся с этим, когда пользователь установил свои настройки для региона и языка на английский (США), но выбрал свой личный формат даты для dd-MMM-yy. Он получил проект от клиента с датой в стандартном формате по-американски «4/29/2010 1:45:30 PM» и кодом:
customValue = DateTime.Parse ( custom_alue.ToString (), CultureInfo.CreateSpecificCulture («en-US»));
выбрасывает исключение, поскольку его локальные предпочтения переопределяют типичный формат в США.