我想使用 MEF 构建一个可扩展的 NET 应用程序。这对于在我的应用程序中发现和注入(inject)新类型的实例非常有效。我遇到的问题是,我使用的某些 API 不允许注入(inject)新对象,而是接收插入对象的类型作为输入,这显然是编译时未知的。当然,我可以在运行时在代码中解析对象的类型,但为了使 API 正常工作,我还必须加载包含插件的程序集,这一步显然不会在典型的 MEF 应用程序中执行。我可以在运行时通过扫描新插件将被转储的目录并加载这些 dll 来做到这一点,但这不再感觉非常 MEFy ..还有其他方法吗?谢谢。
最佳答案
I could do that at runtime by scanning the directory where new plugins will be dumped and load those dll-s but this does not feel very MEFy anymore .. Is there some other way?
通常,您使用 MEF 来组合对象,而不是查找类型。
但是 MEF 确实实现了您在 DirectoryCatalog 中描述的内容。您可以使用 DirectoryCatalog.Parts
属性枚举使用 MEF 属性导出的部件。
关于.net - MEF:将类型与对象一起注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7311276/