我最近在 ASP.NET 中注册了一些自定义文化,后来我们的客户要求我更改其中一种文化。例如,我注册en-EU
了一个毯子“欧盟英语”语言区域,用于欧盟的英语。我被要求将它从欧盟重新标记为欧洲。Iso 代码en-EU
将保持原样,但我需要将英文名称和本机名称属性从English (European Union)
更改为English (Europe)
。我可以在不取消注册并重新注册的情况下执行此操作吗?如果我必须注销并重新注册,我会丢失存储在其中的内容吗?
问问题
265 次
1 回答
1
看起来在您再次注册之前,它必须已经取消注册(因为如果自定义文化已经注册, Register会抛出 InvalidOperationException)。
但是,您可以做的是从现有的自定义文化初始化 CultureAndRegionInfoBuilder,然后取消注册(此时您不再需要它),然后进行更改并再次注册。
即像这样:(未经测试的代码)
// Initalize the CultureAndRegionInfoBuilder with en-EU
CultureAndRegionInfoBuilder car = new CultureAndRegionInfoBuilder("en-EU",
CultureAndRegionModifiers.None);
car.LoadDataFromCultureInfo(CultureInfo.CreateSpecificCulture("en-EU"));
car.LoadDataFromRegionInfo(new RegionInfo("en-EU"));
// Unregister it
CultureAndRegionInfoBuilder.Unregister("en-EU");
// Update it
car.CultureEnglishName = "English (European Union)";
car.CultureNativeName = "English (Europe)";
// Re-register it
car.Register();
于 2012-12-13T10:13:48.647 回答