我想在 WPF 上使用 MAF 创建一个非常简单的 Paint 应用程序。
我想创建的插件是:
- 主图像处理器 - 显示当前绘画并接收来自用户的输入
- 工具箱 - 用户可以选择某些类型的绘图工具
- 图层 - 用户可以选择要显示的图层、删除图层并选择要处理的图层
问题是:如何在不使用主机的情况下在不同的加载项之间进行交互?
谢谢,罗尼
我这样做的方式是让主机在发现每个加载项时将它们收集到一个集合中,然后在初始化每个加载项时将该集合传递给每个加载项。您传递给加载项的是其他加载项的接口,因为这实际上是主机对它们的全部了解。
主机应该初始化每个加载项,然后在它们全部初始化后,向它们发出激活信号,然后他们会发现其他加载项并开始执行他们的操作。每个加载项都应该公开一个 WhoAreYou 方法,以便他们可以在激活时找出还安装了哪些人。从基类派生加载项将简化这一点。一旦你为一个人弄清楚了,那么所有的人都完成了。
这种方法只使用主机收集和分发插件接口,插件之间通过合同管道直接通信,而不是通过主机路由消息。