Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Средства просмотра символов, такие как представление классов, обозреватель объектов, браузер вызовов и результаты поиска символов, позволяют просматривать символы в проекте или во внешних компонентах. Символы включают пространства имен, классы, интерфейсы, методы и другие элементы языка. Библиотеки отслеживают эти символы и предоставляют их диспетчеру объектов Visual Studio, который заполняет средства данными.
Диспетчер объектов отслеживает все доступные библиотеки. Перед предоставлением символов для инструментов просмотра символов каждая библиотека должна зарегистрироваться в диспетчере объектов.
Как правило, вы регистрируете библиотеку при загрузке VSPackage. Однако это можно сделать в другое время по мере необходимости. Вы снимаете регистрацию библиотеки при завершении работы VSPackage.
Чтобы зарегистрировать библиотеку, используйте метод RegisterLibrary. Для управляемой библиотеки кода используйте метод RegisterSimpleLibrary.
Чтобы отменить регистрацию библиотеки, используйте метод UnregisterLibrary.
Чтобы получить ссылку на диспетчер объектов, IVsObjectManager2передайте SVsObjectManager идентификатор службы методу GetService
.
Регистрация и отмена регистрации библиотеки с помощью диспетчера объектов
Для регистрации библиотеки в диспетчере объектов
Создайте библиотеку.
Получите ссылку на объект IVsObjectManager2 типа и вызовите RegisterSimpleLibrary метод.
private void RegisterLibrary() { if (m_nLibraryCookie != 0) throw new Exception("Library already registered with Object Manager"); // Obtain a reference to IVsObjectManager2 type object. IVsObjectManager2 objManager = GetService(typeof(SVsObjectManager)) as IVsObjectManager2; if (objManager == null) throw new NullReferenceException("GetService failed for SVsObjectManager"); try { int hr = objManager.RegisterSimpleLibrary(m_CallBrowserLibrary, out m_nLibraryCookie); Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(hr); } catch (Exception e) { // Code to handle any CLS-compliant exception. Trace.WriteLine(e.Message); throw; } }
Отмена регистрации библиотеки с помощью диспетчера объектов
Получите ссылку на объект IVsObjectManager2 типа и вызовите UnregisterLibrary метод.
private void UnregisterLibrary() { if (m_nLibraryCookie != 0) { // Obtain a reference to IVsObjectManager2 type object. IVsObjectManager2 objManager = GetService(typeof(SVsObjectManager)) as IVsObjectManager2; if (objManager == null) throw new NullReferenceException("GetService failed for SVsObjectManager"); try { objManager.UnregisterLibrary(m_nLibraryCookie); } catch (Exception e) { // Code to handle any CLS-compliant exception. Trace.WriteLine(e.Message); throw; } finally { m_nLibraryCookie = 0; } } }