Compatibilidad con herramientas de exploración de símbolos

Las herramientas Examinador de objetos, Vista de clases, Explorador de llamadas y Resultados de búsqueda de símbolos proporcionan funcionalidades de exploración de símbolos en Visual Studio. Estas herramientas muestran vistas jerárquicas de árbol de símbolos y muestran las relaciones entre los símbolos del árbol. Los símbolos pueden representar espacios de nombres, objetos, clases, miembros de clase y otros elementos de lenguaje contenidos en varios componentes. Los componentes incluyen proyectos de Visual Studio, componentes externos de .NET Framework y bibliotecas de tipo (.tlb). Para obtener más información, vea Ver la estructura del código.

Bibliotecas de exploración de símbolos

Como implementador de lenguaje, puede ampliar las funcionalidades de exploración de símbolos de Visual Studio mediante la creación de bibliotecas que realizan un seguimiento de los símbolos de los componentes y proporcionan las listas de símbolos al administrador de objetos de Visual Studio a través de un conjunto de interfaces. La interfaz describe IVsSimpleLibrary2 una biblioteca. El administrador de objetos de Visual Studio responde a las solicitudes de datos nuevos de las herramientas de exploración de símbolos mediante la obtención de los datos de las bibliotecas y su organización. Posteriormente rellena o actualiza las herramientas con los datos solicitados. Para obtener una referencia al administrador de objetos de Visual Studio, IVsObjectManager2, pase el SVsObjectManager identificador de servicio al GetService método .

Cada biblioteca debe registrarse con el administrador de objetos de Visual Studio, que recopila la información de todas las bibliotecas. Para registrar una biblioteca, llame al RegisterSimpleLibrary método . Según la herramienta que inicie la solicitud, el administrador de objetos de Visual Studio busca los datos de biblioteca y solicitudes adecuados. Los datos se desplazan entre las bibliotecas y el administrador de objetos de Visual Studio en listas de símbolos descritos por la IVsSimpleObjectList2 interfaz.

El administrador de objetos de Visual Studio es responsable de actualizar periódicamente las herramientas de exploración de símbolos para reflejar los datos más actuales contenidos en las bibliotecas.

El diagrama siguiente contiene un ejemplo de elementos clave del proceso de intercambio de datos o solicitudes entre una biblioteca y el administrador de objetos de Visual Studio. Las interfaces del diagrama forman parte de una aplicación de código administrado.

Data flow between a library and the object manager

Para proporcionar las listas de símbolos al administrador de objetos de Visual Studio, primero debe registrar la biblioteca con el administrador de objetos de Visual Studio llamando al RegisterSimpleLibrary método . Una vez registrada la biblioteca, el administrador de objetos de Visual Studio solicita cierta información sobre las funcionalidades de la biblioteca. Por ejemplo, solicita las marcas de biblioteca y las categorías admitidas llamando a los GetLibFlags2 métodos y GetSupportedCategoryFields2 . En algún momento, cuando una de las herramientas solicita datos de esta biblioteca, el administrador de objetos solicita la lista de nivel superior de símbolos llamando al GetList2 método . En respuesta, la biblioteca fabrica una lista de símbolos y la expone al administrador de objetos de Visual Studio a través de la IVsSimpleObjectList2 interfaz . El administrador de objetos de Visual Studio determina cuántos elementos hay en la lista llamando al GetItemCount método . Todas las solicitudes siguientes se relacionan con un elemento determinado de la lista y proporcionan el número de índice del elemento en cada solicitud. El administrador de objetos de Visual Studio continúa recopilando la información sobre el tipo, la accesibilidad y otras propiedades del elemento llamando al GetCategoryField2 método .

Determina el nombre del elemento llamando al GetTextWithOwnership método y solicita la información del icono llamando al GetDisplayData método . El icono se muestra a la izquierda del nombre del elemento y muestra el tipo del elemento, la accesibilidad y otras propiedades.

El administrador de objetos de Visual Studio llama al GetExpandable3 método para determinar si un elemento de lista determinado se puede expandir y tiene elementos secundarios. Si la interfaz de usuario envía una solicitud para expandir un elemento, el administrador de objetos solicita la lista secundaria de símbolos llamando al GetList2 método . El proceso continúa con diferentes partes del árbol que se crean a petición.

Nota:

Para implementar un proveedor de símbolos de código nativo, use las IVsLibrary2 interfaces y IVsObjectList2 .