Что такое агрегатэкаталог?
-
27-09-2019 - |
Вопрос
Что AggregateCatalog
? Что это значит, когда вы строим new AggregateCatalog()
? Что это значит, когда вы добавляете сборки в каталог, например, catalog.Catalogs.Add(new AssemblyCatalog(someAssembly))
? Помимо узлов, что вы можете добавить в каталог? Любые общие знания, связанные с этим, тоже было бы полезно (я общий новичок)
Решение
AggregateCatalog
В MEF в основном позволяет собирать несколько каталогов расширения. Когда вы называете new AggregateCatalog()
, Вы в основном создаете новую коллекцию каталога (не обязательно заполнено), которые могут содержать несколько экземпляров ComposablePartCatalog, которые могут содержать несколько частей.
Учитывайте его классом, который помогает собирать детали из нескольких наборов.
Сборки - это просто способ нажать детали к вызывающему приложению. Вы можете пропускать части непосредственно изнутри существующей сборки.
Для получения дополнительной информации о каталогах я бы порекомендовал прочитать это.
Другие советы
MEF имеет небольшую кривую обучения - пройти через документы в MEF.codePlex.com по крайней мере один раз. Или попробуйте Screencasts, если вы действительно нажимаете время.
Идея состоит в том, что каталог - это словарь экспортируемых частей (объекты, которые должны быть введены) или части, которые нуждаются в импорте (которые нуждаются в введении объектов) .. Каталог может быть заполнен несколькими способами (следовательно, Дифференциации каталога разных) - из каталога (все ASM в дире) или определенной сборки.
Далее вы можете создать композитный каталог, например, вы хотите создать один словарь, который содержит все экспортированные объекты из DIRA и из этой конкретной сборки, лежащей в DIRB. В этом случае вы можете создавать отдельные каталоги, а затем композитный каталог, который объединяет два. Теперь вы потребляете этот объединенный словарь в вашем коде, чтобы запросить импорт / экспорт.