如何从App.Config文件设置CultureInfo.CurrentCulture?

问题描述 投票:32回答:3

我需要通过App.Config文件设置应用程序的文化,以便“pt-BR”自动用于解析日期,而无需为每个操作手动通知文化。

据我所知,有一个globalization部分可以在Web.Config文件的system.web部分中定义,但我正在运行一个控制台应用程序,我无法弄清楚这一点。

任何的想法?

.net configuration localization app-config globalization
3个回答
26
投票

我不知道从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

7
投票

从.Net 4.5开始,可以设置默认的线程文化,因此不需要为每个线程修复它:

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

我还没有找到与web.config globalization部分匹配的配置。


-3
投票

使用System.Threading;

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

//对于孟加拉国我在每个页面表单加载事件上使用此行

© www.soinside.com 2019 - 2024. All rights reserved.