猿问

有没有办法为整个应用程序设置文化?所有当前线程和新线程?

有没有办法为整个应用程序设置文化?所有当前线程和新线程?

有没有办法为整个应用程序设置文化?所有当前线程和新线程?


我们将文化的名称存储在数据库中,当我们的应用程序启动时,我们就会这样做


CultureInfo ci = new CultureInfo(theCultureString);

Thread.CurrentThread.CurrentCulture = ci;

Thread.CurrentThread.CurrentUICulture = ci;

但是,当然,当我们想要在新线程中做某事时,这会“丢失”。有没有办法设置CurrentCulture和CurrentUICulture整个应用程序?那么新线程也会获得这种文化?或者,只要创建了一个我可以连接的新线程,就会触发某个事件?


慕村225694
浏览 555回答 3
3回答

回首忆惘然

在.NET 4.5中,您可以使用该CultureInfo.DefaultThreadCurrentCulture属性更改AppDomain的文化。对于4.5之前的版本,您必须使用反射来操纵AppDomain的文化。在CultureInfo(m_userDefaultCulture在.NET 4.0 mscorlib中,s_userDefaultCulture在.NET 4.0 mscorlib中)有一个私有静态字段,它控制CurrentCulture在线程未在其自身上设置该属性时返回的内容。这不会更改本机线程区域设置,并且发布以这种方式更改文化的代码可能不是一个好主意。但它可能对测试很有用。
随时随地看视频慕课网APP
我要回答