我想使用MEF构建一个可扩展的.NET应用程序。这非常适合在我的应用程序中发现和注入新类型的实例。我遇到的问题是我使用的某些API不允许注入新对象,而是接收插入对象的类型作为输入,这显然是未知的编译时间。当然我可以在我的代码中解析运行时对象的类型,但为了使API工作,我还必须加载包含插件的程序集,这一步骤显然不在典型的MEF应用程序中执行。我可以在运行时通过扫描将要转储新插件的目录并加载那些dll-s来做到这一点但是这不再感觉非常MEFy ..还有其他方法吗?感谢。
答案 0 :(得分:3)
我可以在运行时通过 扫描将转储新插件的目录并加载它们 dll-s但这不再是MEFy了......还有其他的吗? 方式是什么?
通常你使用MEF来组合对象,而不是找到类型。
但MEF确实实现了您在DirectoryCatalog中描述的内容。您可以使用DirectoryCatalog.Parts
属性枚举使用MEF属性导出的零件。