所以我實現了一個非常簡單的插件系統。c#插件系統問題
我有以下組件:
MainApp
IPlugin
PluginApp
兩個MainApp
和PluginApp
conatin到IPlugin
的參考。現在,在MainApp
中,我掃描一個插件文件夾並搜索實現IPlugin
界面的東西。
然而,由於使用Type.IsAssignableFrom()
當IPlugin.dll
都MainApp
和PluginApp
參考自己的副本,以便它們不被識別爲一個匹配它不工作!
有幫助嗎?
你能解釋一下你的意思(或爲什麼)他們「引用他們自己的IPlugin.dll副本」? – 2010-10-27 19:11:57
你怎麼有不同的'IPlugin.dll? – Oded 2010-10-27 19:12:16
IPlugin.dll包含插件必須實現的接口。所以每個創建插件的人都必須將其包含在他們的項目中。然後,在我的MainApp中,我還必須包含這個。如果我從插件版本中刪除IPlugin.dll,它將正常工作。但是,我無法控制DLL插件創建者包括哪些內容 - 所以我不認爲這是一個好的解決方案(比如,如果有人包含我的應用程序不應該崩潰)。 – 2010-10-27 19:14:28