Вы на правильном пути, однако вам нужно пойти немного дальше.DirectoryModuleCatalog предназначен для загрузки любых типов в указанном каталоге, которые реализуют интерфейс IModule, как вы видели.Если вы хотите ограничить модули, которые загружаются дальше (например, сборками, подписанными определенным ключом), вам нужно создать собственный каталог модулей (вероятно, производный от DirectoryModuleCatalog) и переопределить метод Initialize.Инициализация - это то, где каталог модулей изучит каталог и загрузит коллекцию объектов ModuleInfo, которые содержат информацию о любых модулях в каталоге.Переопределив этот метод, вы можете исследовать сборки в каталоге и загружать модули только из сборок с правильной подписью.В методе Initialize вы должны заполнить свойство Modules модулемInfos модулей, содержащихся в допустимых сборках.
Затем в приведенном выше коде вместо создания нового DirectoryModuleCatalog () вы создадите собственный каталог модулей.
Обратите внимание, в зависимости от того, как вы проверяете подпись сборки,возможно, вы загружаете сборку в память (даже если вы не делаете никаких модулей доступными в каталоге).В этом случае вы можете проверить сборки в отдельном домене приложений, который затем можно выгрузить (следовательно, выгрузить неподписанные сборки из памяти).