我想从我的ERP应用程序中公开一些方法(或接口),我的客户想要添加自己的模块来实现某些功能。例如,我们可以为visual studio编写自己的加载项模块。
请告诉我如何实现这一目标。
答案 0 :(得分:2)
您可能希望查看MEF或Composite UI Application Block之类的内容。如果你想“自己动手”,基本知识是:
在我做到这一点之前,我不能不警告你,在做到这一点时存在问题和陷阱。如果你可以使用像MEF这样的东西来为你做“繁重的工作”,那就去吧,因为它让生活变得更轻松 - 让微软有人为你写下你的插件系统好得多! =)强>
答案 1 :(得分:1)
我的快速建议:
答案 2 :(得分:0)
我完全赞同罗布,但让我稍微延长罗布的答案。
MEF非常沉重和冗长。我的意思是你必须实现从MEF的接口派生的许多特殊类,并且在大多数情况下它们只是接口的标准实现,没有特殊的逻辑。因此,如果您不需要所有这些繁重的功能并想要一些轻量级的解决方案 - 在Rob的回答中实现您自己的以下步骤。 我谈到以前版本的MEF,我不知道最后一个版本是否比以前更方便使用。
如果您决定实施自己的插件架构,我建议您考虑使用Microsoft patterns and practices Unity进行插件实例化。这将消除有关如何初始化插件的头痛,因为Unity将通过插件构造函数来处理插件所需的依赖关系。您只需要声明要作为API公开的接口。插件开发人员应该只在插件构造函数中引用这些接口。 Unity非常轻巧,易于使用。