2010-01-14 54 views
1

我在構建於IoC /插件框架上的應用程序中看到的常見事情之一是從動態加載的插件向菜單或工具欄添加命令。例如,應用程序的默認插件提供了「新建,打開,保存」等操作,這些操作在工作區中的某個項目的上下文菜單中顯示。一個新的插件可能會添加「郵件,發佈,加密」命令,但這些命令與「新建,打開,保存」有關的命令在哪裏顯示?訂購由IoC /插件框架注入的菜單項的最佳方式

如何通過IoC加載組件的應用程序對注入的項目施加順序?

  • 它是否需要來自插件的元數據,提供有關如何對項目進行分組或訂購的提示?
  • 它是否使用以前已知的菜單名稱(或ID)的配置文件來定義順序(對我來說似乎有點弱)?
  • 或者是「未知」的插件被視爲二等公民,並且總是被轉儲到子菜單中?
  • 東西我從來想都沒想(其中我希望的答案,看看)

回答

1

你可以basicly要求的順序選擇項目。

我的意思是你定義讓我們說四個塊(1.新和打開,2.保存,3.打印,4.退出)。插件現在可以告訴應用程序那裏的首選塊。例如。一個插件想要添加打印功能,因此它爲block 3提供了優先權。

0

我不知道這是如何在其他框架中完成的,但我可以解釋Mono.Addins如何支持它。使用Mono.Addins你可以爲菜單聲明一個擴展點。加載項將能夠在其上註冊命令。訣竅是擴展(在這種情況下,命令)可以有一個標識符,並且在註冊擴展時,您可以指定在其之前或之後必須插入的另一個擴展的標識符。