通常你可以写一些像这样的东西
CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
但是这样您只能获得在启动应用程序时配置的CultureInfo,如果之后设置已更改,则不会更新.
那么,如何在控制面板 - >区域和语言设置中获取当前配置的CultureInfo?
Dar*_*rov 29
正如@Christian提出的ClearCachedData是使用的方法.但根据MSDN:
ClearCachedData方法不刷新现有线程的Thread.CurrentCulture属性中的信息
因此,您需要先调用该函数然后启动一个新线程.在这个新线程中,您可以使用CurrentCulture来获取文化的新值.
class Program
{
private class State
{
public CultureInfo Result { get; set; }
}
static void Main(string[] args)
{
Thread.CurrentThread.CurrentCulture.ClearCachedData();
var thread = new Thread(
s => ((State)s).Result = Thread.CurrentThread.CurrentCulture);
var state = new State();
thread.Start(state);
thread.Join();
var culture = state.Result;
// Do something with the culture
}
Run Code Online (Sandbox Code Playgroud)
}
请注意,如果您还需要重置CurrentUICulture,则应单独执行
Thread.CurrentThread.CurrentUICulture.ClearCachedData()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51708 次 |
| 最近记录: |