【发布时间】:2012-06-16 01:22:20
【问题描述】:
假设我有一个类(不是静态类)A,它在某种程度上使用了插件。我使用 MEF 来管理这些插件,并为我的用户添加方法来添加部件目录。用法示例:
var myA = new A();
myA.LoadPlugins(new DirectoryCatalog("path/to/plugins"));
myA.DoStuffWithPlugins();
在与A 相同的命名空间中是类B。 B 也使用 MEF 来管理插件,并且有自己的 CompositionContainer。如果用户想要与B 的插件交互,她必须使用B 的插件管理方法。
B 的用法与上面的 A 一样。
我的问题是,这很糟糕吗?我是否应该关心在我的命名空间中有两个单独的位置来加载插件?如果不好,有什么替代方案?
【问题讨论】: