【问题标题】:How can I provide an API stub for an MEF component?如何为 MEF 组件提供 API 存根?
【发布时间】:2009-11-23 16:08:13
【问题描述】:

Visual Studio 2010 SDK 附带许多程序集,例如 Microsoft.VisualStudio.Text.Data 和 Microsoft.VisualStudio.Text.UI,它们只是存根。若要为 Visual Studio 编写扩展,请引用这些程序集,但将引用的“复制本地”和“精确版本”属性设置为 false。在 Visual Studio 中加载扩展时,引用将绑定到 Visual Studio 先前加载的这些程序集的内部实现。

我想提供一个新的 MEF 导出组件,它充当其他 MEF 包可以[Import] 的 Visual Studio 服务。要使用该服务,其他组件将需要引用我的包 - 但我更喜欢它们引用一个存根,这样我就可以对我的服务的内部实现进行更改,而不会破坏引用它的其他包。如何提供一个“存根”程序集,其中包含来自某个任意程序集的公开可见的 API 组件,这样,如果您引用该存根,它将在运行时与提供的实现无缝协作?

【问题讨论】:

    标签: .net api assemblies extensibility stub


    【解决方案1】:

    我通过创建两个程序集解决了这个问题:

    • MyCompany.VisualStudio.Feature:接口和在某些情况下抽象类以简化最常见的实现。这里没有[Export]s。
    • MyCompany.VisualStudio.Feature.Implementation:实现与功能相关的服务。在这里你会看到[Export]s。

    使用我的功能的人只是引用前者,并将复制本地和精确版本设置为 false。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-17
      • 1970-01-01
      • 1970-01-01
      • 2017-03-17
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多