Share via


Identificación de símbolos en una biblioteca

Las herramientas de exploración de símbolos muestran vistas jerárquicas de símbolos. Los símbolos representan espacios de nombres, objetos, clases, miembros de clase y otros elementos de lenguaje.

Cada símbolo de la jerarquía se puede identificar mediante la información de navegación que pasa la biblioteca de símbolos al administrador de objetos de Visual Studio a través de las interfaces siguientes:

La ubicación del símbolo de la jerarquía distingue un símbolo. Permite que las herramientas de exploración de símbolos naveguen a un símbolo específico. La ruta de acceso única y completa al símbolo determina la ubicación. Cada elemento de la ruta de acceso es un nodo. La ruta de acceso comienza con el nodo de nivel superior y termina con el símbolo específico. Por ejemplo, si el método M1 es miembro de la clase C1 y C1 está en el espacio de nombres N1, la ruta de acceso completa del método M1 es N1. C1. M1. Esta ruta de acceso contiene tres nodos: N1, C1 y M1.

La información de navegación permite que el administrador de objetos de Visual Studio busque, seleccione y mantenga seleccionados los símbolos de la jerarquía. Permite navegar desde una herramienta de exploración a otra. Al usar el Examinador de objetos para examinar símbolos en un proyecto de Visual C++, puede hacer clic con el botón derecho en un método e iniciar la herramienta Explorador de llamadas para mostrar el método en un gráfico de llamadas.

Dos formas describen la ubicación del símbolo. La forma canónica se basa en la ruta de acceso completa del símbolo. Representa una posición única del símbolo en la jerarquía. Es independiente de la herramienta de exploración de símbolos. Para obtener la información de formulario canónico, el administrador de objetos de Visual Studio llama al EnumCanonicalNodes método . El formulario de presentación describe la ubicación del símbolo dentro de una herramienta de exploración de símbolos específica. La posición del símbolo es relativa a la posición de otros símbolos de la jerarquía. Un símbolo determinado puede tener varias rutas de presentación, pero solo una ruta canónica. Por ejemplo, si la clase C1 se hereda de la clase C2 y ambas clases están en el espacio de nombres N1, el Examinador de objetos muestra el siguiente árbol jerárquico:

N1
    C1
        Bases and Interfaces
            C2
    C2
        Bases and Interfaces
. . . . . . . . . . .

La ruta de acceso canónica de la clase C2, en este ejemplo, es N1 + C2. La ruta de presentación de C2 incluye nodos C1 e "Bases e interfaces": N1 + C1 + "Bases e interfaces" + C2.

Para obtener la información del formulario de presentación, el administrador de objetos llama al EnumPresentationNodes método .

Para obtener información de formularios canónicos y de presentación

  1. Implemente el método EnumCanonicalNodes.

    El administrador de objetos llama a este método para obtener la lista de nodos contenidos en la ruta de acceso canónica del símbolo.

    public int EnumCanonicalNodes(out Microsoft.VisualStudio.Shell.Interop.IVsEnumNavInfoNodes ppEnum)
    {
        CallBrowserEnumNavInfoNodes EnumNavInfoNodes =
            new CallBrowserEnumNavInfoNodes(m_strMethod);
        ppEnum = (IVsEnumNavInfoNodes)(EnumNavInfoNodes);
        return 0;
    }
    
    
  2. Implemente el método EnumPresentationNodes.

    El administrador de objetos llama a este método para obtener la lista de nodos contenidos en la ruta de acceso de presentación del símbolo.