我最近在ASP.NET中注册了一些自定义文化,后来我们的客户要求更改其中一个。例如,我在欧盟注册了en-EU
,这是一个全球性的“欧盟英语”语言区域。我被要求将它从欧盟重新标记为欧洲。 Iso代码en-EU
将保持原样,但我需要将英文名称和原生名称属性从English (European Union)
更改为{{1 }}。我可以在不取消注册并重新注册的情况下执行此操作吗?如果我必须取消注册并重新注册,我会丢失存储在其中的内容吗?
答案 0 :(得分: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();