Добавить спутниковые сборки во время выполнения
Я создал приложение, которое может переключать культуры во время выполнения. Но теперь я хочу добавить новую сборку Satellite в свое приложение, пока оно продолжает работать. Я копирую определенную папку культуры (например, папку af
с Localisation.resources.dll
файл в нем) в папку приложения, а затем я запускаю следующий код:
ResourceManager rm = new ResourceManager(ResxExtension.GetDefaultResxName(this), this.GetType().Assembly);
radComboBox1.Items.Clear();
foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.AllCultures).OrderBy(x => x.DisplayName))
{
ResourceSet resourceSet = rm.GetResourceSet(ci, true, false);
if (resourceSet != null)
radComboBox1.Items.Add(ci);
}
// Show CurrentUICulture in the combobox
radComboBox1.SelectedItem = GetResourceCulture(CultureManager.UICulture, rm);
Но тогда ничего не происходит, я продолжаю видеть старые культуры, но добавленная культура не показана. Только когда я останавливаю и запускаю приложение, в комбинированный список добавляется новая культура.
Можно ли добавить спутниковые сборки во время выполнения? Или мне всегда нужно перезапускать приложение?
1 ответ
Вы должны перезапустить приложение. Если вы этого не сделаете, веб-приложение не зарегистрирует типы, найденные в папке bin.
Обычно касание в файле web.config вызывает перезапуск приложения.