/// <summary> /// Initializes a new instance of the <see cref="VersionChanger"/> class. /// Adds our command handlers for menu (commands must exist in the command table file) /// </summary> /// <param name="package">Owner package, not null.</param> /// <param name="commandService">Command service to add command to, not null.</param> private VersionChanger(VersionChangerPackage package, OleMenuCommandService commandService, DTE application) { this.package = package ?? throw new ArgumentNullException(nameof(package)); commandService = commandService ?? throw new ArgumentNullException(nameof(commandService)); var menuCommandID = new CommandID(GuidList.guidVersionChangerCmdSet, (int)PkgCmdIDList.cmdshowVersionChanger); var menuItem = new MenuCommand(this.Execute, menuCommandID); commandService.AddCommand(menuItem); applicationObject = application; }
/// <summary> /// Initializes the singleton instance of the command. /// </summary> /// <param name="package">Owner package, not null.</param> public static async Task InitializeAsync(VersionChangerPackage package) { // Switch to the main thread - the call to AddCommand in VersionChanger's constructor requires // the UI thread. await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(package.DisposalToken); var applicationObject = (DTE)await package.GetServiceAsync(typeof(DTE)); OleMenuCommandService commandService = await package.GetServiceAsync((typeof(IMenuCommandService))) as OleMenuCommandService; Instance = new VersionChanger(package, commandService, applicationObject); if (!SettingsControl.IsLoaded) { SettingsControl.SettingsManager = new ShellSettingsManager(package); } }