Настройка CultureInfo в проекте «Тесты»? - PullRequest
1 голос
/ 30 января 2010

У меня есть приложение MVC, которое я установил глобализацию в web.config. Все хорошо в веб-приложении. Но в моем тестовом проекте у меня возникает проблема на уровне обслуживания. Я прошу дату рождения в следующем формате дд / мм / гггг. Я передаю это как строку в мой сервисный слой. У меня есть RegEx, чтобы проверить, правильно ли он отформатирован, но когда я пытаюсь преобразовать его в дату, я получаю сообщение об ошибке. Это потому, что для CultureInfo задано значение en.US, я хочу, чтобы оно было en.GB. Я попытался в одном из моих начальных методов тестирования сделать следующее, но безрезультатно:

string sCulture = ConfigurationSettings.AppSettings["CultureToUse"];  //returns "en.GB"
        System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(sCulture);
        CultureInfo.CreateSpecificCulture(sCulture);

Есть идеи, как настроить CultureInfo в моем тестовом проекте?

Ответы [ 2 ]

1 голос
/ 30 января 2010

Поскольку вы применяете формат, в котором находятся данные, и они являются только числовыми, вам не следует полагаться на пользовательские настройки, и лучше использовать DateTime.ParseExact (dateString, "dd / MM / yyyy", CultureInfo. InvariantCulture).

Свойство CurrentUICulture управляет ресурсами, которые загружаются для приложения. CurrentCulture - это то, что вы хотите установить / получить для управления разбором / форматированием.

1 голос
/ 30 января 2010
ConfigurationSettings.AppSettings["CultureToUse"]

Должен возвращать "en-GB", а не "en.GB", надеюсь, это поможет!

...