Я использую MEF в приложении Windows Azure, где все подключаемые модули сборки хранятся в хранилище BLOB-объектов. В хранилище BLOB-объектов хранятся не только подключаемые модули, но и все сборки, на которые они ссылаются.
Код, который загружает плагины, выглядит следующим образом:
foreach (var pluginBytes in _pluginProvider.GetPlugins())
{
var pluginAssembly = AppDomain.CurrentDomain.Load(pluginBytes);
var assemblyCatalog = new AssemblyCatalog(pluginAssembly);
catalog.Catalogs.Add(assemblyCatalog);
}
К сожалению, плагины, которые ссылаются на сборку третьей части, вызовут исключение ReflectionTypeLoadException при вызове метода ComposeParts в CompositionContainer.
Из-за облачного решения я не могу использовать DirectoryCatalog. Как я могу решить эту острую проблему?