Добавить спутниковые сборки во время выполнения

Я создал приложение, которое может переключать культуры во время выполнения. Но теперь я хочу добавить новую сборку 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 вызывает перезапуск приложения.

Другие вопросы по тегам