2010-07-05 47 views
1

我目前有一個C#項目,它使用插件,並具有相當常見的插件處理方法:IPlugin接口存儲在以傳統動態方式鏈接的dll中。宿主應用程序查找類庫,導出暴露此接口的類並在運行時通過反射裝載它們。接口庫版本控制 - 重大更改

包含接口的dll還包含helper類,用於更新插件,提供抽象基類等等。

我的問題是,需要什麼來打破我的主機和插件程序集之間的接口?換句話說,如果我編譯並分發主機應用程序,然後分發與插件dll的更高版本(其中幫助程序類已更改,但IPlugin的定義方式完全相同)的插件,則主機仍然拿起插件?在我使用反射方法將IPlugin視爲不同的「類型」之前,需要對插件庫做多少改變?

回答

0

如果程序集沒有按照特定版本加載,我只會說當你更改接口契約時,你真正遇到的唯一突破性更改。如果你只是改變助手類,它不應該是一個問題。