Autofac, MEF и dotnet core 3.0 - PullRequest
       43

Autofac, MEF и dotnet core 3.0

0 голосов
/ 10 октября 2019

В моем приложении я использую Autofac в качестве DI-Framework и MEF для динамической загрузки сборок в контейнер. Я делал это несколько раз, но с помощью dotnet Framework, а не ядра.

Итак, у меня есть мой модуль:

[Export(typeof(IMyModule))]
public class ModueA : IMyModule
{
}

Атрибут Export находится в пространстве имен System.Composition

ComposeableCatalog зарегистрирован таким образом:

var catalog = GetComposableCatalog();            
_configuratorContainerBuilder.RegisterComposablePartCatalog(catalog);

Во время отладки я вижу, что catalog содержит свойство с именем LoadedFiles, а этот массив содержит ModuleA. Но свойство Parts пусто.

Когда я собираю свой контейнер и пытаюсь разрешить все модули, которые реализуют IMyModule, я получаю пустую коллекцию.

 using(var container = _configuratorContainerBuilder.Build())
 {
     var modules = container.Resolve<IEnumerable<IMyModule>>();
 }

Любойидеи, где я ошибаюсь?

...