我正在设计一个使用DLL插件架构的WPF程序。主机应用程序比内容更“铬”。它负责提供一致的外观和感觉,并提供所有插件通用的一些功能(例如“检查更新”按钮)。
但是,我的计划是第三方开发人员将对插件进行编码。因此,他们需要添加特定于插件的功能。我设计了主机应用程序,以便它分配一个标签页(如果插件请求它,则为两个),并允许插件用自己的按钮,列表框等填充该标签页,然后触发相应的插件中的代码。
有点像MDI,除了按钮将托管在主机应用程序的标签页中,但会触发插件中的事件。
我需要一些帮助来弄清楚如何实现这个设计。作为主持人 - 程序员,我需要做些什么来支持这一点(比如加载插件并填写标签页)?插件开发人员需要做什么
答案 0 :(得分:3)
检查WPF Add-Ins架构。这是sample。
答案 1 :(得分:2)
实现插件架构所需的大部分样板资料都可以在Managed Extensibility Framework中找到: http://mef.codeplex.com/
对于将在客户端页面中触发事件的主机上的托管按钮,您可以通过执行将客户端页面设置为目标的特定命令来实现此目的。以下是在名为“hostedWpfPageControl”的页面上执行“粘贴”命令的示例:
ApplicationCommands.Paste.Execute(null, this.hostedWpfPageControl);