Расширение Visual Studio - Регистрация нового сервиса - PullRequest
0 голосов
/ 18 октября 2019

Как мне убедиться, что мой сервис зарегистрирован в AsyncPackage моего расширения Visual Studio? Я следовал за примером из VSSDK-Extensibility-Samples . Я также взглянул на то, как это делают другие расширения. Я пытался сделать то же самое, но не могу получить свой сервис от глобального поставщика услуг.

Шаги, которые я сделал:

  • [Shell.ProvideService(typeof(SMyService), IsAsyncQueryable = true)] для моего класса асинхронных пакетов
  • [Guid(...)] interface SMyService { } определил интерфейс в новом файле
  • public class MyService { } в качестве реализации сервиса. Он создается методом CreateServiceAsync
  • var container = (Shell.IAsyncServiceContainer)this; container.AddService(typeof(SMyService), CreateServiceAsync); внутри AsyncPackage.InitializeAsync метода перед вызовом base.InitializeAsync

Есть ли что-то, чего мне не хватает, чтобы сделать мой сервис доступным из другихVS Extextension услуги? Когда я делаю AsyncServiceProvider.GlobalProvider.GetServiceAsync(typeof(SMyService)) внутри, скажем, метода компонента MEF, я получаю ноль. Нужно ли регистрировать услугу где-либо еще?

...