增益集專案的元件
增益集專案是使用 [增益集精靈] 建立,並且編譯為 DLL 的類別庫 (Class Library) 專案。 增益集專案包含名為 Connect 的原始程式碼檔,這也是類別的名稱。 Connect 類別會實作名為 IDTExtensibility2 的介面,此介面會在增益集和 Visual Studio 整合式開發環境 (IDE) 之間傳遞命令。
IDTExtensibility2 有五個方法,實作後可當做事件。
方法 |
描述 |
---|---|
將增益集載入 Visual Studio 時會呼叫這個方法。 |
|
當 Visual Studio 載入完成時會呼叫這個方法。 |
|
在 Visual Studio 中載入或卸載增益集時會呼叫這個方法。 |
|
當 Visual Studio 關閉時會呼叫這個方法。 |
|
將增益集從 Visual Studio 卸載時會呼叫這個方法。 |
如果您使用 [增益集精靈] 建立增益集時核取使用者介面選項,則除了 IDTExtensibility2 介面之外,也會自動實作 IDTCommandTarget 介面。 如果您選擇在增益集中建立或操作命令列,同時也必須實作命名空間 Microsoft.VisualStudio.CommandBars。
OnConnection 方法
OnConnection 方法絕對是在增益集專案中所使用最重要的方法,因為每次載入增益集時都會呼叫這個方法。 此外,這個方法也可以用來呼叫增益集中的其他 Automation 程式碼。 OnConnection 方法會傳遞四個參數:Application、ConnectMode、AddInInst 和 custom。 Application 代表 Visual Studio IDE。 它會轉換為具有 _applicationObject 名稱的 DTE2 物件。 這個物件代表核心 Automation 模型中的主物件,可以用來存取所有的型別和成員。 ConnectMode (其值包含在 Extensibility.extConnectMode 中) 代表增益集的載入方式,例如透過命令列、藉由開啟方案等方式。 AddInInst 代表增益集本身。 custom 參數是一個陣列,您可以選擇性地將資料傳遞至增益集。
除了初始化這些變數外,OnConnection 還包含了程式碼,如果您在使用 [增益集精靈] 建立增益集時選取了對應的選項,就可以在 [工具] 功能表上建立增益集的命令。
其他增益集方法
由 [增益集精靈] 所建立的其他四個增益集方法,都是預設為空白。 若要處理增益集的相關事件,可以使用這些其他的方法回應事件。 例如,您可以將程式碼加入至 OnAddInsUpdate 方法,當增益集關閉時傳送通知訊息給其他程序。 您可以在 Visual Studio IDE 即將關閉時,呼叫 OnBeginShutdown 方法執行清除工作。
當您建立增益集並選取 [您要建立增益集的命令列 UI 嗎?] 選項時 (會在 [工具] 功能表上建立增益集的命令),便會實作 IDTCommandTarget 介面。 在增益集專案中會加入另外兩個方法 (QueryStatus 和 Exec),用以處理命令工作。 這兩個方法包含少量的程式碼,可用來將命令置於 [工具] 功能表上,並且回應使用者的按鍵動作。 QueryStatus 會通知命令的增益集是否可用。 當使用者在 [工具] 功能表上按一下增益集的命令時,便會呼叫 Exec 方法,因此如果您想要回應該事件,請在這個方法中加入程式碼。