Динамически менять детали (DLL) при использовании DirectoryCatalog - PullRequest
2 голосов
/ 08 декабря 2010

Используя MEF, после добавления новых плагинов (DLLs, содержащих parts) в папку плагинов, вызов обновления для DirectoryCatalog обновит контейнер (если разрешена перекомпоновка), и новые добавленные плагины станут доступными.

У меня вопрос: что если нам нужно динамически заменить DLL (part)?

Я пробовал это сделать, но все загруженные parts заблокированы (защищены от записи) с помощью MEFи не может быть заменено.

1 Ответ

3 голосов
/ 08 декабря 2010

.NET блокирует ваши DLL. Вы не можете выгружать сборки из домена приложений, и пока они загружаются, обычно происходит блокировка. Вы можете включить теневое копирование для AppDomain, чтобы позволить вам удалить библиотеки DLL. Они по-прежнему будут загружены, но DirectoryCatalog увидит, что они исчезли, когда вы вызвали Обновить, и удалит их из каталога.

...