MEF2 как работают каталоги? Похоже, это было удалено

Я не могу найти хороших примеров на MEF2.

Я хотел бы создать каталог плагинов и использовать каталог каталогов для загрузки импорта.

Что бы я хотел:

  1. Нет атрибутов. Использование Конфигуратора конфигурации с условными обозначениями
  2. Каталог плагинов
  3. Когда dll добавлен, приложение знает о новых доступных экспортах.

Могу ли я просто использовать замок Виндзор для этого?

2 ответа

Если вы имеете в виду новую версию MEF для Магазина Windows, доступную в nuget, то в документации говорится:

Здесь нет ни концепции каталога, ни составных пакетов, ни какой-либо "иерархии контейнеров" или API-интерфейсов определения состава.

Звучит безумно для разработчика MEF 1, но страница хорошо объясняет причину. Однако вам требуется:

  • Когда dll добавлен, приложение знает о новых доступных экспортах.

Это явно недоступно в версии MEF 2 (Win Store), так как не поддерживает перекомпоновку. Для этого вам нужен "полный" MEF из.NET Framework, в System.ComponentModel.Composition,

Модель конвенций, которая была представлена ​​в MEF2, является альтернативой модели атрибутов. Обе модели могут сосуществовать в приложении. В каталогах появился новый конструктор, который принимает ReflectionContext в качестве аргумента. RegisrationBuilder является производным от этого класса. Таким образом, вы создаете RegistrationBuilder, настраиваете его, а затем создаете один или несколько каталогов, используя новые.ctors и передавая его как ReflectionContext.

Посмотрите на эту серию статей, рассказывающих о возможностях MEF2. Также взгляните на эту вводную статью от CodeProject.

Я не использовал Castle Winsdor, поэтому я не могу комментировать это.

Другие вопросы по тегам