Udostępnij za pośrednictwem


Identyfikowanie symboli w bibliotece

Narzędzia przeglądania symboli wyświetlają hierarchiczne widoki symboli. Symbole reprezentują przestrzenie nazw, obiekty, klasy, składowe klasy i inne elementy języka.

Każdy symbol w hierarchii można zidentyfikować za pomocą informacji nawigacji przekazywanych przez bibliotekę symboli do menedżera obiektów programu Visual Studio za pośrednictwem następujących interfejsów:

Lokalizacja symbolu w hierarchii rozróżnia symbol. Umożliwia ona przechodzenie do określonego symbolu za pomocą narzędzi przeglądania symboli. Unikatowa, w pełni kwalifikowana ścieżka do symbolu określa lokalizację. Każdy element w ścieżce jest węzłem. Ścieżka rozpoczyna się od węzła najwyższego poziomu i kończy się określonym symbolem. Jeśli na przykład metoda M1 jest członkiem klasy C1, a C1 znajduje się w przestrzeni nazw N1, pełna ścieżka metody M1 to N1. C1. M1. Ta ścieżka zawiera trzy węzły: N1, C1 i M1.

Informacje nawigacyjne umożliwiają menedżerowi obiektów programu Visual Studio lokalizowanie, zaznaczanie i zachowywanie zaznaczonych symboli w hierarchii. Umożliwia nawigowanie z jednego narzędzia przeglądania do innego. Korzystając z przeglądarki obiektów do przeglądania symboli w projekcie Visual C++, możesz kliknąć prawym przyciskiem myszy metodę i uruchomić narzędzie Call Browser, aby wyświetlić metodę na grafie wywołań.

Dwie formy opisują lokalizację symboli. Formularz kanoniczny jest oparty na w pełni kwalifikowanej ścieżce symbolu. Reprezentuje unikatową pozycję symbolu w hierarchii. Jest niezależny od narzędzia do przeglądania symboli. Aby uzyskać informacje o formularzu kanonicznym, menedżer obiektów programu Visual Studio wywołuje EnumCanonicalNodes metodę. Formularz prezentacji opisuje lokalizację symbolu w określonym narzędziu do przeglądania symboli. Położenie symbolu jest względne względem położenia innych symboli w hierarchii. Dany symbol może mieć kilka ścieżek prezentacji, ale tylko jedną ścieżkę kanoniczną. Jeśli na przykład klasa C1 jest dziedziczona z klasy C2, a obie klasy znajdują się w przestrzeni nazw N1, przeglądarka obiektów wyświetla następujące drzewo hierarchiczne:

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

Ścieżka kanoniczna klasy C2, w tym przykładzie, to N1 + C2. Ścieżka prezentacji C2 obejmuje węzły C1 i "Podstawy i interfejsy": N1 + C1 + "Podstawy i interfejsy" + C2.

Aby uzyskać informacje o formularzu prezentacji, menedżer obiektów wywołuje EnumPresentationNodes metodę.

Aby uzyskać informacje o formularzach kanonicznych i prezentacji

  1. Zaimplementuj metodę EnumCanonicalNodes .

    Menedżer obiektów wywołuje tę metodę, aby uzyskać listę węzłów zawartych w ścieżce kanonicznej symbolu.

    public int EnumCanonicalNodes(out Microsoft.VisualStudio.Shell.Interop.IVsEnumNavInfoNodes ppEnum)
    {
        CallBrowserEnumNavInfoNodes EnumNavInfoNodes =
            new CallBrowserEnumNavInfoNodes(m_strMethod);
        ppEnum = (IVsEnumNavInfoNodes)(EnumNavInfoNodes);
        return 0;
    }
    
    
  2. Zaimplementuj metodę EnumPresentationNodes .

    Menedżer obiektów wywołuje tę metodę, aby uzyskać listę węzłów zawartych w ścieżce prezentacji symbolu.