我在IoC / plugin框架构建的应用程序中看到的常见事情之一是从动态加载的插件向菜单或工具栏添加命令。例如,应用程序的默认插件提供“新建,打开,保存”等操作,这些操作显示在工作区中某个项目的上下文菜单中。新插件可能会添加“邮件,发布,加密”命令,但这些命令在哪里显示“新建,打开,保存”?
如何通过IoC加载组件的应用程序对注入的项目施加顺序?
答案 0 :(得分:1)
您可以基本上向订单询问订单。
我的意思是你定义让我们说四个块(1.新的和开放的,2。保存,3。打印,4。退出)。插件现在可以告诉应用程序优先阻止。例如。一个插件想要添加打印功能,因此它为块3提供了优先权。
答案 1 :(得分:0)
我不知道在其他框架中如何做到这一点,但我可以解释Mono.Addins如何支持它。使用Mono.Addins,您将声明菜单的扩展点。加载项可以在其上注册命令。诀窍是扩展(在这种情况下是命令)可以有一个标识符,并且当注册扩展时,您可以在必须插入之前或之后指定另一个扩展的标识符。