2010-07-05 49 views
1

我目前有一个C#项目,它使用插件,并具有相当常见的插件处理方法:IPlugin接口存储在以传统动态方式链接的dll中。宿主应用程序查找类库,导出暴露此接口的类并在运行时通过反射装载它们。接口库版本控制 - 重大更改

包含接口的dll还包含helper类,用于更新插件,提供抽象基类等等。

我的问题是,需要什么来打破我的主机和插件程序集之间的接口?换句话说,如果我编译并分发主机应用程序,然后分发与插件dll的更高版本(其中帮助程序类已更改,但IPlugin的定义方式完全相同)的插件,则主机仍然拿起插件?在我使用反射方法将IPlugin视为不同的“类型”之前,需要对插件库做多少改变?

回答

0

如果程序集没有按照特定版本加载,我只会说当你更改接口契约时,你真正遇到的唯一突破性更改。如果你只是改变助手类,它不应该是一个问题。