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