C# 如何在VS2015 v14中处理/实现System.Web.Editor.ComponentLocator

C# 如何在VS2015 v14中处理/实现System.Web.Editor.ComponentLocator,c#,visual-studio,roslyn,vsix,visual-studio-lightbulbs,C#,Visual Studio,Roslyn,Vsix,Visual Studio Lightbulbs,我对VisualStudio扩展开发不太熟悉,关于将现有vs扩展迁移到vs2015的文档似乎不存在,或者仅仅是 尽管如此,我还是克隆了Mads Kristensen的JSON intellisensegit项目,以便修改它以支持VS2015 我在最新(版本14)Microsoft.Web.Editor.dllassembly.Microsoft.Web.Editor.ComponentLocatorWithOrdering.ImportMany()中遇到类方法引用问题。它似乎已从程序集中删除,

我对VisualStudio扩展开发不太熟悉,关于将现有vs扩展迁移到vs2015的文档似乎不存在,或者仅仅是

尽管如此,我还是克隆了Mads Kristensen的JSON intellisensegit项目,以便修改它以支持VS2015


我在最新(版本14)
Microsoft.Web.Editor.dll
assembly.
Microsoft.Web.Editor.ComponentLocatorWithOrdering.ImportMany()中遇到类方法引用问题
。它似乎已从程序集中删除,我无法确定最新程序集中的正确方法/实现

  ...
    private readonly ItemHandlerRegistry<IJSONSmartTagProvider> _smartTagProviders;

    private void RegisterSmartTagProviders()
    {
        // using Microsoft.Web.Editor;
        IEnumerable<Lazy<IJSONSmartTagProvider>> providers = ComponentLocatorWithOrdering<IJSONSmartTagProvider>.ImportMany();

        foreach (Lazy<IJSONSmartTagProvider> provider in providers)
        {
            _smartTagProviders.RegisterHandler(provider.Value.ItemType, provider.Value);
        }
    }
  ...
。。。
私有只读ItemHandlerRegistry\u smartTagProviders;
私有无效注册表MartTagProviders()
{
//使用Microsoft.Web.Editor;
IEnumerable providers=ComponentLocatorWithOrdering.ImportMany();
foreach(提供程序中的惰性提供程序)
{
_smartTagProviders.RegisterHandler(provider.Value.ItemType,provider.Value);
}
}
...
我对v12程序集、类型和方法的最佳参考来自。它没有描述它;也没有在迁移上下文中提供任何与之相关的材料(这就是我发布这个问题的最终目的)

额外考虑
ijsonSmartTagProvider
类型是一种自定义类型,似乎封装了
SmartTag
,已被折旧(或弃用)…较新的(推荐)类型是
SuggestedAction
(它似乎是被称为灯泡的概念/组件的接口),但即使我将代码/自定义类型转换为使用较新的类型,我也不一定知道如何在最新的
Microsoft.Web.Editor
程序集中使用它,就像Mads在上面的代码片段中使用类型一样。(此外,我所看到的
的唯一实现类是SuggestizedAction
).

hmm..1500名代表能否将
Lightbull
添加为此问题的标签..检查实际工作情况..从我在上述问题中发布的Roslyn源代码参考中,我看到
Microsoft.CodeAnalysis.Editor.Tagging
参考类似于Mad的
JSONSmartTagger
类(此方法所属的类)正在执行…谢谢@SLaks,我将研究它…另外,更好的方法是从MEF导出的类中导入
IEnumerable