我正在学习Prism框架以及MEF如何与它集成......我正在研究以Prism为例的“StockTraderRI”演示解决方案......
在诸如此类的视图模型上使用[EXPORT]属性时:[导出(typeof(TrendLineViewModel))]
MEF是否在其内部结构中创建了这些列表,以便在导入时如下: [进口] TrendLineViewModel ViewModel 它可以找到?
看起来导出的视图正在做类似的事情: [ViewExport(RegionName = RegionNames.ResearchRegion)]
然后在AutoPopulateExportedViewsBehavior方法中使用以在区域中注入视图..这是正确的吗?
由于 哈罗德
答案 0 :(得分:1)
当您在类型上放置“attributes”(方括号)时,您将“元数据”附加到可在运行时使用反射发现的类型。
配置MEF时,请为其指定一个目录,告诉它应扫描哪些程序集以查找[导入]和[导出]元数据属性。例如,DirectoryCatalog将使MEF扫描特定目录中的一组程序集/ DLL。
当您要求创建/编写类型时,它知道如何解决该部分的创建,即它匹配具有相同合同的[导入]和[导出]。