Введение в MEF
-
Upload
vladimir-lisnik -
Category
Documents
-
view
825 -
download
0
Transcript of Введение в MEF
Managed Extensibility Framework
Владимир Лисник
Software EngineerM. C. Dean
Инструмент позволяющий решать задачи плагинообразности приложения
Композиция
Экпорты
Импорты
// Импорт всех доступных расширений:
// Импорт одного расширения:контракт
контракт
тип расширения
тип расширения
точка импорта
точка импорта
// Экспорт расширения:
контракт
экспортируемая часть
тип расширения
CompositionPart CompositionPart
// Явная передача элементов композиции:
каталог
объект с точками импорта
// Ипользование каталога для композиции:
AggregateCatalog AssemblyCatalog DirectoryCatalog * TypeCatalog DeploymentCatalog **
* Только в .NET Framework** Только в Silverlight
// Ключевая концепция:
(с) http://mef.codeplex.com/wikipage?title=Architecture&referringTitle=Documentation
System.ComponentModel.Composition.dllSystem.ComponentModel.Composition.Initialization.dll*
* Только в Silverlight
// Экспорт:
// Импорт:
// MetadataExportAttribute:
// Пользовательские атрибуты :
1.
2.
3.
наш атрибут (метаданные и экспорт)
тип метаданных(все свойства должны
быть read-only)
// Точка импорта:
// Работа с метаданными:
по умолчанию = false
Могут производить рекомпозицию:
• AggregateCatalog (автоматически)
• DirectoryCatalog (вызвать Refresh)
• DeploymentCatalog (автоматически)
.NE
T F
ram
ewo
rk • Как отдельная библиотека в .NET 3.5
• Поставляется в составе .NET 4.0
• Доступен в .NET Framework 4 Client Profile
Silv
erlig
ht • Как отдельная
библиотека в Silverlight 3
• Поставляется в составе Silverlight 4
Silv
erlig
ht
forW
ind
ow
s P
ho
ne • Не доступно
MS Public License
(Проект с открытым исходным кодом)
http://mef.codeplex.com/ http://blogs.msdn.com/b/gblock/archive/tags/mef/ http://blogs.msdn.com/b/nblumhardt/archive/tags/mef/