MEF Загрузить плагины (dll) из папки не в исполняемой сборке, а в другой dll. - PullRequest
4 голосов
/ 06 августа 2010

Мне нужно реализовать очень маленькую архитектуру плагинов. Я новичок в MEF, поэтому даже простые вещи становятся сложными.Предположим, у меня есть 2 клиента DLL (исполняющая сборка) и сервер на сервере. У меня есть папка с именем «Плагины»

Обычно я создаю папку «Плагины» в каталоге bin в executingAssembly и все работает с этим кускомкода, Как я могу заставить его работать, если папка плагина находится на сервере?

    private void LoadPlugins(string folder)
    {
        AggregateCatalog catalog=new AggregateCatalog();
        catalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly()));
        catalog.Catalogs.Add(new DirectoryCatalog(folder));
        CompositionContainer container =new CompositionContainer(catalog);
        container.ComposeParts(this);
    }

Любые предложения?

PS Плагины будут использоваться только для обработки логики на сервере, который ониклиент вообще не используется

1 Ответ

4 голосов
/ 06 августа 2010

Хотите загрузить плагины с сервера и использовать их в своем клиентском приложении?Если это так, вы можете загрузить их по определенному пути и создать каталог по этому пути.Или вы можете загрузить каждую сборку, загрузить ее с помощью Assembly.Load () или аналогичным методом и создать поверх нее AssemblyCatalog.

...