Как мне убедиться, что мой сервис зарегистрирован в 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, я получаю ноль. Нужно ли регистрировать услугу где-либо еще?