C#WPF MAF加载它们之间的相互作用 [英] C# WPF MAF Add-In interaction between themselves

查看:856
本文介绍了C#WPF MAF加载它们之间的相互作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个使用MAF WPF的一个非常简单的画图程序。

I would like create a very simple Paint application using MAF on WPF.

该加载项我想创建是:

  1. 在主图像处理器 - 显示的当前油漆和接收来自用户的输入
  2. 工具箱 - 用户可以选择某些类型的绘图工具
  3. 图层 - 用户可以选择要显示的图层,删除图层,然后选择在哪一层上班

问题是:我怎么能在不同的加载项之间不使用主机交互

the question is: How I can interact between the different Add-Ins without using the host?

谢谢,    罗尼

推荐答案

我的方式做到这一点是主机收集每个加载到一个集合,因为它们可以被发现,然后将该集合传递给每增加 - 在它初始化。什么你传递给加载项是其他加载项界面,因为这是真正的所有主机知道它们。

The way I do it is for the host to gather each add-in into a collection as they're being discovered, and then pass that collection to each add-in as it initializes it. What you're passing to the add-ins are the other add-ins' interfaces, as that's really all the host knows about them.

应该初始化主机每个加载项,然后一旦他们全部初始化,它们的信号激活,在那里他们然后发现的其他加载项,然后去做自己的事情。每一个加载项应公开一个WhoAreYou方法,使他们能够找到谁,当他们正在启动其他的安装了。从基类派生您的加载项将简化。一旦你理解了它的一个,那么它的完成了所有的人。

The host should initialize each add-in, and then once they're all initialized, signal them to activate, where they then discover the other add-ins and go do their thing. Each add-in should expose a WhoAreYou method so that they can find out who else is installed when they're activated. Deriving your add-ins from a base class will simplify this. Once you've figured it out for one then it's done for all of them.

此方法只使用主机来收集和分发的外接接口,与加载项之间通过主机直接通信的路由信息​​,通过合同的管道来代替。

This approach only uses the host to collect and distribute the add-in interfaces, with the add-ins communicating directly with each other through the contract pipeline instead of routing messages through the host.

这篇关于C#WPF MAF加载它们之间的相互作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆