Comment : enregistrez une bibliothèque avec le gestionnaire d'objets
les outils de Symbole-navigation, tels qu' Affichage de classes, Explorateur d'objets, Explorateur d'appels et Résultats de la recherche de symbole, vous permettent d'afficher des symboles dans votre projet ou dans les composants externes. Les symboles incluent des espaces de noms, des classes, des interfaces, des méthodes, et d'autres éléments de langage. Les bibliothèques suivent ces symboles et exposent au gestionnaire d'objets de Visual Studio qui remplit outils avec les données.
Le gestionnaire d'objets conserve toutes les bibliothèques disponibles. Chaque bibliothèque doit s'inscrire le gestionnaire d'objets avant de fournir les symboles pour les outils de symbole-navigation.
En général, vous enregistrez une bibliothèque lorsqu'un VSPackage charge. Toutefois, il peut être établie vers une autre heure si nécessaire. Vous annulez l'inscription de la bibliothèque lorsque le VSPackage arrête.
Pour inscrire une bibliothèque, utilisez la méthode d' RegisterLibrary . dans le cas de la bibliothèque de code managé, utilisez la méthode d' RegisterSimpleLibrary .
Pour annuler l'enregistrement d'une bibliothèque, utilisez la méthode d' UnregisterLibrary .
Pour obtenir une référence au gestionnaire d'objets, IVsObjectManager2, passez l'ID de service d' SVsObjectManager à la méthode d' GetService .
Enregistrer et d'annuler l'inscription une bibliothèque avec le gestionnaire d'objets
Pour inscrire une bibliothèque avec le gestionnaire d'objets
créez une bibliothèque.
Private m_CallBrowserLibrary As CallBrowser.Library = Nothing Private m_nLibraryCookie As UInteger = 0 ' Create Library. m_CallBrowserLibrary = New CallBrowser.Library()
private CallBrowser.Library m_CallBrowserLibrary = null; private uint m_nLibraryCookie = 0; // Create Library. m_CallBrowserLibrary = new CallBrowser.Library();
Obtenir une référence à un objet du type d' IVsObjectManager2 et appelez la méthode d' RegisterSimpleLibrary .
Private Sub RegisterLibrary() If m_nLibraryCookie <> 0 Then Throw New Exception("Library already registered with Object Manager") End If ' Obtain a reference to IVsObjectManager2 type object. Dim objManager As IVsObjectManager2 = TryCast(GetService(GetType(SVsObjectManager)), IVsObjectManager2) If objManager Is Nothing Then Throw New NullReferenceException("GetService failed for SVsObjectManager") End If Try Dim hr As Integer = objManager.RegisterSimpleLibrary(m_CallBrowserLibrary, m_nLibraryCookie) Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(hr) Catch e As Exception ' Code to handle any CLS-compliant exception. Trace.WriteLine(e.Message) Throw End Try End Sub
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; } }
Pour annuler l'enregistrement d'une bibliothèque avec le gestionnaire d'objets
Obtenir une référence à un objet du type d' IVsObjectManager2 et appelez la méthode d' UnregisterLibrary .
Private Sub UnregisterLibrary() If m_nLibraryCookie <> 0 Then ' Obtain a reference to IVsObjectManager2 type object. Dim objManager As IVsObjectManager2 = TryCast(GetService(GetType(SVsObjectManager)), IVsObjectManager2) If objManager Is Nothing Then Throw New NullReferenceException("GetService failed for SVsObjectManager") End If Try objManager.UnregisterLibrary(m_nLibraryCookie) Catch e As Exception ' Code to handle any CLS-compliant exception. Trace.WriteLine(e.Message) Throw Finally m_nLibraryCookie = 0 End Try End If End Sub
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; } } }
Voir aussi
Tâches
Comment : listes d'exposition de symboles fournis par la bibliothèque au gestionnaire d'objets
Concepts
outils de prise en charge de Symbole-Navigation