Расширение Visual Studio — регистрация новой службы

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


person Mylan719    schedule 18.10.2019    source источник
comment
Возможно, вы можете получить помощь от эта тема.   -  person LoLance    schedule 21.10.2019
comment
Моя проблема в том, что мне абсолютно необходимо зарегистрировать службу по-старому. Служба, которую я пытаюсь расширить, использует serviceProvider.GetService(Type.GetTypeFromCLSID(...)) для получения зависимости, которую я пытаюсь предоставить. Поэтому мне нужно передать руководство родительской службе и предоставить мою службу, указанную в руководстве.   -  person Mylan719    schedule 21.10.2019
comment
Можете ли вы получить помощь от этот документ. И, возможно, вы используете старую версию VS? Насколько я знаю, поведение расширения VS различается в разных версиях, могу ли я узнать, какую версию вы используете, это очень помогло бы в устранении неполадок... :)   -  person LoLance    schedule 23.10.2019
comment
Я использую 16.2.5 и 15.9   -  person Mylan719    schedule 23.10.2019
comment
Привет, я немного запутался насчет My problem is I absolutely have to register the service the old way. Поскольку вы используете VS2019, зачем вам регистрировать службу по-старому?   -  person LoLance    schedule 25.10.2019