protected override async Task RegisterObjectBrowserLibraryManagerAsync(CancellationToken cancellationToken) { await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); if (await GetServiceAsync(typeof(SVsObjectManager)).ConfigureAwait(true) is IVsObjectManager2 objectManager) { _libraryManager = new ObjectBrowserLibraryManager(this, ComponentModel, Workspace); if (ErrorHandler.Failed(objectManager.RegisterSimpleLibrary(_libraryManager, out _libraryManagerCookie))) { _libraryManagerCookie = 0; } } }
private void UnregisterObjectBrowserLibraryManager() { if (_libraryManagerCookie != 0) { var objectManager = this.GetService(typeof(SVsObjectManager)) as IVsObjectManager2; if (objectManager != null) { objectManager.UnregisterLibrary(_libraryManagerCookie); _libraryManagerCookie = 0; } _libraryManager.Dispose(); _libraryManager = null; } }
private async Task UnregisterObjectBrowserLibraryManagerAsync(CancellationToken cancellationToken) { await JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); if (_libraryManagerCookie != 0) { if (await GetServiceAsync(typeof(SVsObjectManager)).ConfigureAwait(true) is IVsObjectManager2 objectManager) { objectManager.UnregisterLibrary(_libraryManagerCookie); _libraryManagerCookie = 0; } _libraryManager.Dispose(); _libraryManager = null; } }