组合批处理类中的 AddPart() 和 AddExport() 有什么区别?我什么时候会使用其中一个?
问问题
1125 次
1 回答
3
我想知道同样的事情,遗憾的是找不到任何简明扼要地描述 AddPart、AddExport(和 AddExportedValue)之间区别的文档。这是我到目前为止所学到的:
MEF 术语中的一部分是提供功能(又名导出)和指定依赖项(又名导入)的组件。
因此,当您致电时,batch.AddPart(something)
您是在告诉 MEF,“某物”是可能提供export并依赖于一个或多个imports的组件。
如果您打电话batch.AddExport(new Export("someExport", () => something))
,那么您是在告诉 MEF “某物”是一个仅提供导出而不需要任何导入的组件,即 MEF 将忽略[Import]
可能在“某物”类中指定的任何注释。
IEnumerable<ImportDefinition>
在内部 AddExport 实际上调用 AddPart,但在此之前它将传递的对象包装在“SingleExportComposablePart”中,即 ComposablePart在调用时返回空ComposablePart.ImportDefinitions
。
于 2012-07-17T12:48:58.360 回答