1
我正在研究通過Assembly.Load
加載插件的應用程序。我想確保插件DLL不包含更多的編譯代碼,然後他們需要。目前,我有2個項目:如何在.NET中組織插件DLL的引用
- 應用
- 爲myplugin
爲myplugin有一個類從應用程序項目實施IPlugin
,並引用項目這樣做。 這是做到這一點的正確方法嗎?或者我應該在單獨的項目中放置IPlugin(以及任何插件需要訪問的接口),還是有其他更好的方法來做到這一點?
爲什麼只有合同的單獨項目會更好?我知道這是我能做的事情,但我不知道爲什麼我會這樣做。此外,我嘗試使用MEF2,但遇到了麻煩,缺乏文檔。 –
好吧,如果你將接口放在你的「應用程序」項目中,那麼所有的插件都會對消費應用程序有太多瞭解(甚至可以嘗試使用公有的) - 以便進行多次耦合。如果你想構建一個很酷的新應用程序並重用這些插件呢?你真的想要新的應用程序引用舊的?您的目標是擴展,只要滿足合同,主機應用程序的工作方式並不重要(從插件的角度來看)。關於擴展Visual Studio的Tink ...這些擴展沒有引用Visual Studio本身... – Helikaon
我在當前的項目中將MEF與Prism結合使用,我們對此感到滿意。文檔有點缺乏,但絕對值得花費一些時間瞭解MEF及其功率 – Helikaon