2012-07-29 61 views
0

我学习棱镜框架和MEF如何与它集成......我在看与棱镜来作为例子,“StockTraderRI”演示解决方案...在棱镜中,当使用MEF时,[Export]究竟做了什么?

当使用[出口]属性上的视图模型如此:[导出(typeof运算(TrendLineViewModel))]

是否MEF在其内部结构中的一个创建它们的列表,以便当它被导入像这样: [导入] TrendLineViewModel视图模型 它可以位于?

的样子的视图的导出是做类似的东西: [ViewExport(RegionName = RegionNames.ResearchRegion)]

,然后将其在AutoPopulateExportedViewsBehavior方法用于注入在各区域的观点..是这正确吗?

由于 哈罗德

回答

1

当穿上类型“属性”(方括号的东西),要连接的“元数据”,以该类型可以在运行时通过使用反射来发现。

当你配置MEF时,你给它一个Catalog,告诉它它应该扫描哪些程序集的[Import]和[Export]元数据属性。例如,DirectoryCatalog将使MEF扫描特定目录中的一组程序集/ DLL。

当您要求创建/组合的类型时,它知道如何解决该部分的创建,即匹配具有相同合同的[导入]和[导出]。