Подтвердить что ты не робот

Как установить CultureInfo.CurrentCulture из файла App.Config?

Мне нужно настроить культуру приложения через файл App.Config, чтобы "pt-BR" автоматически использовался для синтаксического анализа дат без необходимости вручную сообщать культуру для каждой операции.

Насколько мне известно, существует раздел globalization, который может быть определен внутри раздела system.web в файле Web.Config, но я запускаю консольное приложение, и я не могу понять это.

Любая идея?

4b9b3361

Ответ 1

Я не знаю встроенного способа установить его из App.config, но вы можете просто определить ключ в вашем App.config, как это

<configuration>
    <appSettings>
        <add key="DefaultCulture" value="pt-BR" />
    </appSettings>
</configuration>

и в вашем приложении прочитайте это значение и установите культуру

CultureInfo culture = new CultureInfo(ConfigurationManager.AppSettings["DefaultCulture"]);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;

Кроме того, как уже упоминал @Ilya, начиная с .NET 4.5 вы можете установить культуру по умолчанию один раз, а не на поток:

CultureInfo.DefaultThreadCurrentCulture = culture
CultureInfo.DefaultThreadCurrentUICulture = culture

Ответ 2

Начиная с формы .Net 4.5 можно установить культуру потоков по умолчанию, поэтому нет необходимости исправлять ее для каждого потока:

CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("pt-BR");
CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("pt-BR");

К сожалению, я еще не нашел конфигурацию, которая соответствует разделу globalization web.config.

Ответ 3

Не делай этого так, но, видимо. Если вы уже это сделали до InitialiseComponent, если это UICulture, просто

Thread.CurrentThread.CurrentCulture = new CultureInfo("pt-BR")

и

Thread.CurrentThread.CurrentUICulture = new CultureInfo("pt-BR")

Все, что вы не хотите использовать в текущей культуре для использования InvariantCulture

Лично я бы предпочел оставить нынешнюю культуру в одиночку. Используйте InvariantCulture для всей глобализации, я не хочу меняться. Затем установите нейтральную культуру в свойствах проекта.

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

Ответ 4

с использованием System.Threading;

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo( "bn-BD" );

//Для Бангладеш. Я использую эту строку для каждого события загрузки формы страницы