【问题标题】:Interface Library Versioning - Breaking Changes接口库版本控制 - 重大更改
【发布时间】:2010-07-05 08:10:38
【问题描述】:

我目前有一个使用插件的 C# 项目,并且有一个相当常见的插件处理方法:IPlugin 接口存储在以传统动态方式链接的 dll 中。宿主应用会查找导出类的类库,这些类会暴露此接口,并在运行时通过反射加载它们。

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

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

【问题讨论】:

    标签: c# reflection plugins interface versioning


    【解决方案1】:

    如果程序集不是由特定版本加载的,那么我会说您真正遇到的唯一重大更改是更改接口合同时。如果您只是更改助手类,那应该不是问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 2017-03-24
      • 2019-07-02
      • 2015-04-02
      • 2021-04-07
      • 1970-01-01
      • 2019-05-15
      相关资源
      最近更新 更多