Ответ, на который вы ссылаетесь, использует AppDomain.CurrentDomain.GetAssemblies()
для получения загруженных в данный момент сборок, а затем регистрирует в них любые типы, производные от PluginBase
.
Однако сборки загружаются в домен приложений только при первой необходимости. Бьюсь об заклад, типы, которые вас интересуют, находятся в сборках , которые еще не были загружены при регистрации. Вы можете проверить это, посмотрев результат AppDomain.CurrentDomain.GetAssemblies()
: отсутствуют ли какие-либо сборки, которые вы ожидали быть там?
Самый простой способ исправить это - использовать AutoFac MEF для интеграции и MEF DirectoryCatalog. Каталог каталогов предназначен именно для этого сценария.
edit : при втором взгляде проблема в том, что вы регистрируетесь как PluginBase
, но затем пытаетесь разрешить как некоторый подтип. Для того, чего вы здесь пытаетесь достичь, вам, вероятно, нужно зарегистрировать .AsSelf()
вместо .As<PluginBase>()
.