Procedura: Registrare una libreria con l'amministratore dell'oggetto
gli strumenti di Simbolo-esplorazione, come Visualizzazione classi, Visualizzatore oggetti, Visualizzatore chiamate e Risultati del simbolo di ricerca, consentono di visualizzare i simboli nel progetto o in componenti esterni. I simboli inclusi gli spazi dei nomi, classi, interfacce, i metodi e gli altri elementi del linguaggio. Le librerie gestione di tali simboli e li espongono gestione dell'oggetto di Visual Studio che popola gli strumenti con i dati.
L'amministratore dell'oggetto tiene traccia di tutte le librerie disponibili. Ogni raccolta necessario registrare con l'amministratore dell'oggetto prima di fornire i simboli degli strumenti di simbolo-esplorazione.
In genere, si registra una raccolta quando un package VS viene caricato. Tuttavia, possono essere effettuate in un altro momento in base alle necessità. Annullare la registrazione della raccolta quando il package VS è stata chiusa.
per registrare una raccolta, utilizzare il metodo di RegisterLibrary . Nel caso di codice gestito, utilizzare il metodo di RegisterSimpleLibrary .
Per annullare la registrazione di una raccolta, utilizzare il metodo di UnregisterLibrary .
Per ottenere un riferimento all'amministratore dell'oggetto, IVsObjectManager2, passa il servizio ID di SVsObjectManager al metodo di GetService .
Registrando e annullamento della registrazione di una raccolta con l'amministratore dell'oggetto
Per registrare una libreria con l'amministratore dell'oggetto
creare una raccolta.
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();
Ottenere un riferimento a un oggetto del tipo di IVsObjectManager2 e chiamare il metodo di 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; } }
Per annullare la registrazione di una raccolta con l'amministratore dell'oggetto
Ottenere un riferimento a un oggetto del tipo di IVsObjectManager2 e chiamare il metodo di 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; } } }
Vedere anche
Attività
Procedura: Elenchi di esporre i simboli forniti dalla libreria gestione dell'oggetto
Concetti
Strumenti di supporto di Simbolo-Esplorazione