最近、いくつかのカスタム カルチャを ASP.NET に登録しましたが、後でクライアントからそのうちの 1 つについて何か変更するように依頼されました。たとえばen-EU、EU の英語の包括的な「欧州連合の英語」言語ロケールを登録しました。欧州連合からヨーロッパだけにラベルを変更するように依頼されました. ISOコードen-EUはそのままですが、英語名とネイティブ名の属性を からEnglish (European Union)に変更する必要がありますEnglish (Europe)。登録解除して再登録せずにこれを行うことはできますか? 登録を解除して再登録する必要がある場合、これに保存されているコンテンツは失われますか?
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   に答える