Sdílet prostřednictvím


Identifikace symbolů v knihovně

Nástroje pro procházení symbolů zobrazují hierarchické zobrazení symbolů. Symboly představují obory názvů, objekty, třídy, členy třídy a další prvky jazyka.

Každý symbol v hierarchii lze identifikovat navigačními informacemi předávanými knihovnou symbolů správci objektů sady Visual Studio pomocí následujících rozhraní:

Umístění symbolu v hierarchii rozlišuje symbol. Umožňuje nástrojům pro procházení symbolů přejít na konkrétní symbol. Jedinečná plně kvalifikovaná cesta k symbolu určuje umístění. Každý prvek v cestě je uzel. Cesta začíná uzlem nejvyšší úrovně a končí konkrétním symbolem. Pokud je například metoda M1 členem třídy C1 a C1 je v oboru názvů N1, úplná cesta metody M1 je N1. C1. M1. Tato cesta obsahuje tři uzly: N1, C1 a M1.

Navigační informace umožňují správci objektů sady Visual Studio vyhledat, vybrat a ponechat vybrané symboly v hierarchii. Umožňuje navigaci z jednoho nástroje pro procházení do jiného. Při procházení symbolů v projektu Visual C++ pomocí prohlížeče objektů můžete kliknout pravým tlačítkem myši na metodu a spustit nástroj Prohlížeč volání, který zobrazí metodu v grafu volání.

Dvě formy popisují umístění symbolu. Kanonický formulář je založen na plně kvalifikované cestě symbolu. Představuje jedinečnou pozici symbolu v hierarchii. Je nezávislý na nástroji pro procházení symbolů. Chcete-li získat informace o kanonickém formuláři, správce objektů sady Visual Studio volá EnumCanonicalNodes metodu. Formulář prezentace popisuje umístění symbolu v konkrétním nástroji pro procházení symbolů. Pozice symbolu je relativní vzhledem k pozici jiných symbolů v hierarchii. Daný symbol může mít několik cest prezentace, ale pouze jednu kanonickou cestu. Pokud je například třída C1 zděděna z třídy C2 a obě třídy jsou v oboru názvů N1, zobrazí prohlížeč objektů následující hierarchický strom:

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

Kanonická cesta třídy C2 v tomto příkladu je N1 + C2. Cesta prezentace C2 zahrnuje uzly C1 a Bází a rozhraní: N1 + C1 + "Básně a rozhraní" + C2.

Chcete-li získat informace o formuláři prezentace, správce objektů volá EnumPresentationNodes metodu.

Získání informací o kanonických a prezentačních formulářích

  1. Implementujte metodu EnumCanonicalNodes .

    Správce objektů volá tuto metodu k získání seznamu uzlů obsažených v kanonické cestě symbolu.

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

    Správce objektů volá tuto metodu k získání seznamu uzlů obsažených v cestě prezentace symbolu.