c# - 如何使用 MEF 的 GetExport\ImportDefinition?

标签 c# mef

我有主项目和一系列 dll,这些 dll 具有某些接口(interface)的特定实现以及 view\viewmodels 等。我使用 {ImportMany] 将它们全部与一些元数据一起获取,这使我可以选择一个,这让我引用了ISystem的具体实现。

我想从 ISystem 选择的任何 dll 中获得 IDisplay 的唯一特定实现,我用 [Export("SomeDisplay", typeof(IDisplay))] 标记了它 到目前为止,我能找到的唯一看起来可行的东西是 GetExports(ImportDefinition),但我不明白如何创建一个可行的 ImportDefinition,因为它似乎需要一个特定的契约(Contract)名称,但它不是直到运行时才知道。

当然,因为我仍然是 MEF n00b,所以我敢打赌我做错了 :D 那么,如果 GetExports 是最好的方法,我怎样才能让它发挥作用呢?或者我应该使用更好的方法吗?

谢谢!

最佳答案

您需要考虑在 MEF 导出的同时提供元数据。

有关详细信息,请参阅这些文章和博客文章:

关于c# - 如何使用 MEF 的 GetExport\ImportDefinition?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3896515/

相关文章:

c# - 无论如何,有没有办法检测方法将调用什么?

silverlight - MEF/PRISM 银光

c# - 在 ASP.NET 和 C# 中手动进行 AJAX 调用

c# - Watin :select item from dropdown list, 它的值是从另一个下拉列表中填充的

c# - 在运行时检测 MEF 程序集

mef - 更改使用 MEF 加载的 Dll

c# - 了解 MEF System.Lazy<T,TMetaData>

C#如何在运行时动态生成一个实现不同接口(interface)的对象?

c# - 在 C# 中格式化大数

c# - 如何将字节数组转换为通用数组?