0

我对 Visual Studio 扩展开发不太熟悉,关于将现有的 vs 扩展迁移到 vs2015 的文档似乎相当不存在,或者只是对强调类型用法没有帮助

尽管如此,我已经克隆了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(这似乎是称为Lightbulb的概念/组件的接口),但即使我是要将代码/自定义类型转换为使用较新的类型,我不一定知道如何在最新的Microsoft.Web.Editor程序集中以类似于 Mads 在上述代码段中使用他的类型的方式使用它。(另外,我见过的唯一实现类ISuggestedAction是在Rosyln中)。

4

0 回答 0