组合批次类中的AddPart()和AddExport()有什么区别?我何时才能使用其中一个?
答案 0 :(得分:3)
我想知道同样的事情,遗憾的是,我们无法找到任何描述AddPart,AddExport,(和AddExportedValue)之间差异的文档。这是我到目前为止所学到的:
MEF术语中的部分是一个提供功能(又名 exports )并指定依赖关系(又名 imports )的组件。
因此,当您致电batch.AddPart(something)
时,您告诉MEF“某事”是可能提供导出并依赖于一个或多个导入的组件。
如果你打电话给batch.AddExport(new Export("someExport", () => something))
,那么你告诉MEF“某事”是一个只提供 exports 而不需要任何导入的组件,即MEF会忽略任何{{1>} [Import]
1}}可以在“something”类中指定的注释。
内部AddExport实际上调用AddPart,但在此之前它将传递的对象包装在“SingleExportComposablePart”中,即ComposablePart在调用IEnumerable<ImportDefinition>
时返回空ComposablePart.ImportDefinitions
。