1

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

4

1 に答える 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 に答える