我在 Windows Azure 应用程序中使用 MEF,其中所有程序集插件都存储在 blob 存储中。在 blob 存储中不仅存储插件,还存储插件引用的所有程序集。
加载插件的代码如下:
foreach (var pluginBytes in _pluginProvider.GetPlugins())
{
var pluginAssembly = AppDomain.CurrentDomain.Load(pluginBytes);
var assemblyCatalog = new AssemblyCatalog(pluginAssembly);
catalog.Catalogs.Add(assemblyCatalog);
}
不幸的是,当在 CompositionContainer 上调用 ComposeParts 方法时,引用第三方程序集的插件将导致 ReflectionTypeLoadException。
由于云解决方案,我无法使用 DirectoryCatalog。我该如何解决这个棘手的问题?