Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建自定义区域性,然后使用“修改”;“地区和语言”;Windows中的对话框_C#_Globalization_Cultureinfo - Fatal编程技术网

C# 创建自定义区域性,然后使用“修改”;“地区和语言”;Windows中的对话框

C# 创建自定义区域性,然后使用“修改”;“地区和语言”;Windows中的对话框,c#,globalization,cultureinfo,C#,Globalization,Cultureinfo,我刚刚按照MSDN文章中描述的步骤创建并注册了一个新的区域性: 一切看起来都很好。我可以在Windows的“区域和语言”对话框中看到我的新区域性。我甚至可以将区域性加载回我的应用程序 当我在“控制面板”的“区域和语言”对话框中直接更改某些内容时(假设NumberDecimalSeparator应为点“.”而不是逗号“,”),然后尝试检索区域性: var ci = CultureInfo.GetCultureInfo(CultureName); ci.ClearCachedData(); ci =

我刚刚按照MSDN文章中描述的步骤创建并注册了一个新的区域性:

一切看起来都很好。我可以在Windows的“区域和语言”对话框中看到我的新区域性。我甚至可以将区域性加载回我的应用程序

当我在“控制面板”的“区域和语言”对话框中直接更改某些内容时(假设NumberDecimalSeparator应为点“.”而不是逗号“,”),然后尝试检索区域性:

var ci = CultureInfo.GetCultureInfo(CultureName);
ci.ClearCachedData();
ci = CultureInfo.GetCultureInfo(CultureName); 
我仍然有我注册的相同的文化信息。手动更改不会投射到检索到的CultureInfo对象中

这是正确的行为还是我做错了什么

编辑:

如果我再想一想,很明显,问题是我在IIS中运行应用程序的用户帐户与在“控制面板”中更改区域性信息的用户帐户不同,因为正如我所注意到的,这是一个用户自定义区域性

正确的问题是,如何注册一个对所有用户(或至少对IIS用户和一些管理员用户)通用的区域性?

我想这样做的原因是:

  • 我希望能够自定义应用程序中使用的格式
  • 我不想在我的Web应用程序中创建与控制面板中的GUI等效的GUI
  • 管理员只需在“控制面板”中设置应用程序的格式

  • 至少尝试注销+登录以查看是否清除任何缓存数据。问题似乎与应用程序正在IIS中运行有关。我尝试用上面的代码运行简单的asp.net应用程序。如果我在VS Development server中运行它,一切正常。当我切换到IIS时,我会得到默认值。所以问题可能是IIS中的应用程序在不同的用户帐户下运行?
    var ci = CultureInfo.GetCultureInfo(CultureName);
    ci.ClearCachedData();
    ci = CultureInfo.GetCultureInfo(CultureName);