目前我的 WPF 应用程序导入这样的部分
[Import(typeof(ILedPanel)]
public ILedPanel Panel { get; set; }
但这为 ma 提供了实现 ILedPanel 的类的单个实例。 我真正想做的是能够创建尽可能多的实例 我需要的。请注意,ILedPanel 仅包含一个导出 随时使用该软件。
(如果我使用带有 List 的导入,它会给我一个实例 对于每个实现 ILedPanel 的类)
有什么建议吗?
最佳答案
所有其他答案都很老,所以他们没有提到 MEF 中一个相对较新的功能,称为 ExportFactory
.这个通用类允许您导入 ExportFactory<ILedPanel>
并在需要时创建任意数量的实例,因此您的代码将如下所示:
[Import(typeof(ILedPanel)]
public ExportFactory<ILedPanel> PanelFactory { get; set; }
public ILedPanel CreateNewLedPanelInstance()
{
return PanelFactory.CreateExport().Value;
}
此方法还满足创建部件具有的任何导入。您可以阅读有关使用 ExportFactory
的更多信息类 here .
关于c# - 创建导入的 MEF 部件的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/947807/