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

时间:2015-10-13 14:01:27

标签: c# visual-studio roslyn vsix visual-studio-lightbulbs

我对Visual Studio Extention开发不太熟悉,并且 将现有vs扩展 迁移到vs2015的文档似乎相当不存在,或者只是unhelpful to underline type usages

从来没有,我已经克隆了 Mads Kristensen的 JSON intellisense git项目,以便我可以修改它以支持VS2015。

我在最新(版本14)Microsoft.Web.Editor.dll程序集中遇到了类方法引用的问题。 Microsoft.Web.Editor.ComponentLocatorWithOrdering<T>.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);
        }
    }
  ...

我对v12程序集,类型和方法的最佳参考来自whatdll.com。它没有描述它;它也没有在迁移的背景下提供任何有关它的材料(这最终是我发布这个问题的。)

额外考虑

IJSONSmartTagProvder类型是一种自定义类型,似乎封装了SmartTag,它被折旧(或弃用)。较新的(推荐)类型是SuggestedAction(似乎是一个概念/组件的接口,称为灯泡),但即使我要转换代码/自定义类型以使用更新的类型,我也不一定知道如何利用它在最新的Microsoft.Web.Editor程序集中,以类似于Mads如何在上面的代码片段中使用他的类型。 (另外,ISuggestedAction所见的唯一实施课程在Rosyln)。

0 个答案:

没有答案