Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何为MEF组件提供API存根?_.net_Api_Assemblies_Extensibility_Stub - Fatal编程技术网

.net 如何为MEF组件提供API存根?

.net 如何为MEF组件提供API存根?,.net,api,assemblies,extensibility,stub,.net,Api,Assemblies,Extensibility,Stub,Visual Studio 2010 SDK附带了许多程序集,如Microsoft.VisualStudio.Text.Data和Microsoft.VisualStudio.Text.UI,它们只是存根。若要为Visual Studio编写扩展,请引用这些程序集,但将引用的“复制本地”和“精确版本”属性设置为false。在Visual Studio中加载扩展时,引用将绑定到Visual Studio以前加载的这些程序集的内部实现 我想提供一个新的MEF导出组件,该组件充当Visual Stud

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


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

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

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

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

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

  • MyCompany.VisualStudio.Feature:接口,在某些情况下抽象类,以简化最常见的实现。这里没有
    [Export]
    s
  • MyCompany.VisualStudio.Feature.Implementation:实现与该功能相关的服务。在这里您将看到
    [Export]
    s
使用我的功能的人只引用前者,并将“复制本地和精确版本”设置为false