我有一个基于控制台的 MEF 应用程序,它的主机 (CompositionContainer
) 根据命令行参数加载可用的插件程序集,例如:
app.exe plugin1
将加载主机(app.exe)和plugin1。VS解决方案的结构是每个插件都有自己的项目(因此有自己的程序集)。
存在一组插件,其中一些插件有机会重复使用代码。例如,plugin1
具有一个方法CopyFiles(string fileName)
,这个功能也要被plugin2
利用。
现在,在传统的控制台应用程序中,人们会添加对plugin1.dll
的引用,并使用该命名空间进行重用。
我想知道是否有一种“MEF”的方式来实现这种重用。因此,可以通过在plugin1的
可导出接口上添加Import
属性来创建plugin2
中的plugin1
对象,让MEF来处理其余部分。这可能吗?如果是这样,怎么做?
还是在设计这样的应用程序时应采取更好的方法?如果有任何有用的学习资源和解释的指针,那就额外加分了。
谢谢!