我们有许多插件应用程序,它们都可以独立运行,但也可以在同一主机容器中运行。用户可以运行一个主机容器或多个带有一个或多个插件的主机容器。
我们有许多“集成”用例,人们希望其中之一
- 将数据从一个插件发送到另一个插件
- 向另一个应用发送“操作”或“命令”(有时带有参数)
我们有几个选择:
在容器级别拥有一个众所周知的事件总线,所有插件都知道它,并且可以发布和订阅明确定义的消息或对象
将一个插件的 dll 嵌入到另一个插件中,并从另一个插件调用一个插件的 API
创建了解公共(public)集成点的集成插件,因此每个单独的插件都是完全独立的,并且集成插件是唯一了解集成的东西。这样我们就可以在没有任何无关依赖的情况下发布每个单独的插件。
想法或其他建议?
最佳答案
我会看一下 Microsoft 目前正在开发的新的托管扩展性框架 (MEF) 库。请参阅the Codeplex site 。据我了解,VS 2010 也将使用此框架在 Visual Studio 中提供扩展点。
关于c# - 插件集成的最佳模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/686071/