我正在爲我公司的內部業務系統試驗插件體系結構。我設法讀取實現特定接口的Plugin文件夾中的所有.DLL。我試圖弄清楚的是「宿主」MDI父應用程序與將要放入.DLL中的打算製作MDI子項的表單之間的最佳通信方法。插件體系結構 - 使MDI父窗體意識到DLL中的兒童
目前,我只返回來自.DLLs的ToolStripMenuItem對象以添加到MDI Parent。我還測試了將.DLL中連接到ToolStripMenuItems的事件傳播到.DLL中的代碼。我還設法通過界面返回一個Form對象並打開該窗體,因爲Plugin文件夾正在被「掃描」。
但是,我不清楚我將如何使這些形式的MDI兒童。此外,生活在.DLL中的任何其他形式也必須是MDI兒童。我創建了一個VS 2008 Addin項目來查看正在發生的事情,看起來Addin接受一個Application對象,它將它添加到ToolStripMenuItems並執行其他操作。在.DLL中構建菜單的代碼。這與我迄今所做的相反,即MDI從每個.DLL請求一個ToolStripMenuItem,並將返回的對象添加到它自己的菜單中。
設計我的插件體系結構以相同的方式接受應用程序對象唯一的方法,我可以讓窗體打開爲MDI孩子?我是否通過不將應用程序對象傳遞給.DLL來請求其他的,目前我不知道的頭痛?
我很想做類似的事情。你有沒有得到這個工作?我不確定如何讓主機窗體監控一個文件夾,一旦這樣做,如何讓它檢查正確的界面來添加一個插件。你介意發佈,如果不是你的代碼的鏈接,那麼可能是你如何得到這個工作的示例代碼? – 2010-07-07 21:42:04