支援符號瀏覽工具
物件瀏覽器、類別檢視、呼叫瀏覽器和尋找符號結果工具可在 Visual Studio 中提供符號瀏覽功能。 這些工具會顯示符號的階層式樹狀圖,並顯示樹狀結構中符號之間的關聯性。 符號可以代表包含在各種元件中的命名空間、物件、類別、類別成員和其他語言元素。 這些元件包括 Visual Studio 專案、外部 .NET Framework 元件和類型 (.tlb) 資料庫。 如需詳細資訊,請參閱檢視程式碼的結構。
符號瀏覽資料庫
身為語言實作者,您可以建立資料庫來追蹤元件中的符號,並透過一組介面,將符號清單提供給 Visual Studio 物件管理員,藉此擴充 Visual Studio 符號瀏覽功能。 IVsSimpleLibrary2 介面會描述資料庫。 Visual Studio 物件管理員會從資料庫取得資料並進行排列組織,以回應符號瀏覽工具的新資料要求。 接著,它會使用要求的資料填入或更新工具。 若要取得 Visual Studio 物件管理員的參考,IVsObjectManager2請將SVsObjectManager 服務識別碼傳遞至 GetService
方法。
每個資料庫都必須向 Visual Studio 物件管理員註冊,以收集所有資料庫的資訊。 若要註冊資料庫,請呼叫 RegisterSimpleLibrary 方法。 根據哪個工具起始要求,Visual Studio 物件管理員會尋找適當的資料庫並要求資料。 資料會在資料庫與 Visual Studio 物件管理員之間移動,並列在 IVsSimpleObjectList2 介面所描述的符號清單中。
Visual Studio 物件管理員負責定期重新整理符號瀏覽工具,以反映資料庫中最新的資料。
下圖包含資料庫與 Visual Studio 物件管理員之間要求/資料交換程序的重要元素範例。 圖表中的介面是 Managed 程式碼應用程式的一部分。
若要將符號清單提供給 Visual Studio 物件管理員,您必須先呼叫 RegisterSimpleLibrary 方法,向 Visual Studio 物件管理員註冊資料庫。 註冊資料庫之後,Visual Studio 物件管理員會要求資料庫功能的某些特定資訊。 例如,它會藉由呼叫 GetLibFlags2 和 GetSupportedCategoryFields2 方法來要求資料庫旗標和支援的類別。 在某些時候,當其中一個工具向這個資料庫要求資料時,物件管理員會藉由呼叫 GetList2 方法來要求符號的最上層清單。 回應中,資料庫會製造符號清單,並透過 IVsSimpleObjectList2 介面對 Visual Studio 物件管理員公開。 Visual Studio 物件管理員會呼叫 GetItemCount 方法來判斷清單中的項目數量。 下列所有要求都與清單中的指定項目相關,並在每個要求中提供項目索引編號。 Visual Studio 物件管理員會透過呼叫 GetCategoryField2 方法來收集項目類型、輔助功能和其他屬性的相關資訊。
它會藉由呼叫 GetTextWithOwnership 方法判斷項目的名稱,並藉由呼叫 GetDisplayData 方法要求圖示資訊。 該圖示會顯示在項目名稱左側,並描述項目類型、輔助功能和其他屬性。
Visual Studio 物件管理員會呼叫 GetExpandable3 方法以判斷指定的清單項目是否可展開,且具有子項目。 如果 UI 傳送要求以展開某元素,物件管理員會藉由呼叫 GetList2 方法來要求符號的子清單。 該程序會隨需繼續建置樹狀結構的不同部分。
注意
若要實作原生程式碼符號提供者,請使用 IVsLibrary2 和 IVsObjectList2 介面。