Как получить все доступные имена культур в приложении ASP.NET

Мое приложение ASP.NET локализовано (с использованием ресурсов) для многих культур. Мне нужно найти все эти культуры (во время выполнения) и, например, заполнить DropDownList.

У меня есть код, который делает это в приложениях Windows - собирает доступные культуры, ища вспомогательные сборки.

Но как насчет веб-приложений? Можно ли сателлитные сборки найти? Или это можно как-то иначе сделать?

Какие-либо предложения?

Спасибо


person Tadas Šukys    schedule 06.08.2009    source источник


Ответы (3)


Что-то вроде этого должно сработать для вас ...

var ass = Assembly.GetExecutingAssembly();

foreach( var c in CultureInfo.GetCultures( 
  CultureTypes.SpecificCultures | 
  CultureTypes.NeutralCultures) ) 
{
  try 
  {
    var sat = ass.GetSatelliteAssembly( c );
    // Add to dropdown
   }
   catch( FileNotFoundException ) 
   {
   }
}
person JP Alioto    schedule 06.08.2009
comment
Этот код отлично работает в приложениях для Windows, но не в ASP.NET. Не уверен, но я думаю, что GetS SatelliteAssembly () пытается загрузить спутниковую сборку из каталога ‹culture-name› \ ‹s satellite_assembly_name› .dll. И приложения ASP.NET используют разные местоположения. - person Tadas Šukys; 06.08.2009
comment
+1 за ваш ответ. Но это не совсем то, что я ищу. - person Tadas Šukys; 23.08.2009

Я думаю, ваша проблема в том, чтобы заполнить выпадающий список культурой.

Для этого вам необходимо поддерживать один файл данных / таблицу данных, в котором упоминается вся поддерживаемая культура, а затем вы можете связать это с раскрывающимся списком.

Пожалуйста, не стесняйтесь спрашивать больше?

person Hemant Kothiyal    schedule 10.08.2009

У меня есть идея: перебрать все файлы . .resx в виртуальном каталоге приложения и таким образом собрать разные имена культур. Я еще не пробовал, но думаю, что это должно дать ожидаемый результат.

person Tadas Šukys    schedule 17.08.2009