MEF2 как работают каталоги? Похоже, это было удалено
Я не могу найти хороших примеров на MEF2.
Я хотел бы создать каталог плагинов и использовать каталог каталогов для загрузки импорта.
Что бы я хотел:
- Нет атрибутов. Использование Конфигуратора конфигурации с условными обозначениями
- Каталог плагинов
- Когда 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, поэтому я не могу комментировать это.