在Prism中,当使用MEF时,[Export]究竟做了什么?

时间:2012-07-29 17:06:17

标签: prism

我正在学习Prism框架以及MEF如何与它集成......我正在研究以Prism为例的“StockTraderRI”演示解决方案......

在诸如此类的视图模型上使用[EXPORT]属性时:[导出(typeof(TrendLineViewModel))]

MEF是否在其内部结构中创建了这些列表,以便在导入时如下:    [进口]    TrendLineViewModel ViewModel 它可以找到?

看起来导出的视图正在做类似的事情:   [ViewExport(RegionName = RegionNames.ResearchRegion)]

然后在AutoPopulateExportedViewsBehavior方法中使用以在区域中注入视图..这是正确的吗?

由于 哈罗德

1 个答案:

答案 0 :(得分:1)

当您在类型上放置“attributes”(方括号)时,您将“元数据”附加到可在运行时使用反射发现的类型。

配置MEF时,请为其指定一个目录,告诉它应扫描哪些程序集以查找[导入]和[导出]元数据属性。例如,DirectoryCatalog将使MEF扫描特定目录中的一组程序集/ DLL。

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