Я пытаюсь сделать расширение для visual studio после просмотра видео на Youtube о том, как начать.Следуя некоторым инструкциям, я наткнулся на небольшую ошибку при попытке установить расширение для настраиваемой команды в Меню под инструментами.
DTE2 dte = (DTE2)ServiceProvider.GetServiceAsync(typeof(DTE));
Мой ServiceProvider скорее IAsyncServiceProvider
чем ServiceProvider
.Так есть ли способ сделать объект DTE2 без изменения всего с IAsyncServiceProvider
до ServiceProvider
.
Мой код:
<code> public static async Task InitializeAsync(AsyncPackage package)
{
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(package.DisposalToken);
OleMenuCommandService commandService = await package.GetServiceAsync((typeof(IMenuCommandService))) as OleMenuCommandService;
Instance = new FRC(package, commandService);
}
public static void ExecuteCommand(DTE2 dte, string commandName)
{
ThreadHelper.ThrowIfNotOnUIThread();
var command = dte.Commands.Item(commandName);
if (command.IsAvailable)
{
dte.ExecuteCommand(command.Name);
}
}
private void Execute(object sender, EventArgs e)
{
DTE2 dte = package.GetServiceAsync(typeof(DTE2)) as DTE2;
ThreadHelper.ThrowIfNotOnUIThread();
ExecuteCommand(dte, string.Format("View.ClassView"));
}
}
</code>
Его код: var dte = (DTE2)ServiceProvider.GetService(typeof(DTE));