在运行时添加附属程序集

时间:2013-03-08 09:15:58

标签: .net satellite-assembly resourcemanager

我创建了一个可以在运行时切换文化的应用程序。但是现在我想在应用程序运行时向我的应用程序添加一个新的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 个答案:

答案 0 :(得分:0)

您必须重新启动该应用程序。如果不这样做,Web应用程序将不会注册bin文件夹中找到的类型。

通常,web.config中的触摸会触发应用程序重新启动。