1

我刚刚按照 MSDN 文章中描述的步骤创建并注册了一种新文化:如何:创建自定义文化

var cib = new CultureAndRegionInfoBuilder(CultureName, CultureAndRegionModifiers.None);
cib.LoadDataFromCultureInfo(new CultureInfo("cs-CZ"));
cib.LoadDataFromRegionInfo(new RegionInfo("CZ"));
cib.CultureNativeName = CultureNativeName;
cib.CultureEnglishName = CultureNativeName;
cib.NumberFormat.NumberDecimalSeparator = separator
cib.Register();

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

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

var ci = CultureInfo.GetCultureInfo(CultureName);
ci.ClearCachedData();
ci = CultureInfo.GetCultureInfo(CultureName); 

我仍然有我注册的相同文化信息。检索到的 CultureInfo 对象中不会投射手动更改。

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

编辑:

如果我再想一想,这显然是我在 IIS 中以不同的用户帐户运行应用程序的问题,而不是在控制面板中更改文化信息的用户,因为它是我注意到的UserCustomCulture 。

正确的问题是,我如何注册一种对所有用户(或至少对于 IIS 用户和某些管理员用户)通用的文化?

我想这样做的原因:

  1. 我希望能够自定义应用程序中使用的格式。
  2. 我不想在我的 Web 应用程序中创建与控制面板中的 GUI 等效的 GUI。
  3. 管理员可以简单地在控制面板中为应用程序设置格式。
4

0 回答 0