逐步解說: 存取 DTE 物件從編輯器延伸模組
藉由存取 DTE 物件,您可以在數個不同的方式自動 Visual Studio。 您可以取得 DTE 物件從 Visual Studio 的嵌入式管理單元來參照至它的程式設計識別項 (或 progID)。 如需詳細資訊,請參閱參考 Automation 組件和 DTE2 物件。 通常在 VSPackages,您可以取得 DTE 物件藉由呼叫GetService的 DTE 物件的型別方法。 如需詳細資訊,請參閱 逐步解說: 擴充使用自動化管理 VSPackages。 在管理擴充性架構 (MEF) 的擴充功能,您可以匯入SVsServiceProvider ,然後呼叫GetService有一種方法DTE。
必要條件
若要完成這個逐步解說中,您必須安裝Visual Studio 2010 SDK。 Visual Studio 的 SDK,以及如何下載它的相關資訊,請參閱Visual Studio 擴充性開發人員中心在 MSDN 網站上。
取得 DTE 物件
若要從 ServiceProvider 取得 DTE 物件
建立 C# 或 Visual Basic 編輯器類別器的專案。 為方案命名 DTETest。
將下列組件參考加入至專案。 您必須瀏覽至 Studio 安裝 folder\Common7\IDE\PublicAssemblies\ \Visual。
EnvDTE.dll
EnvDTE80.dll
Microsoft.VisualStudio.Shell.Immutable.10.0
至 DTETest 檔案,並新增下列using指示詞 (Imports Visual Basic 中的陳述式)。
Imports EnvDTE Imports EnvDTE80 Imports Microsoft.VisualStudio.Shell
using EnvDTE; using EnvDTE80; using Microsoft.VisualStudio.Shell;
在DTETestProvider類別、 匯入SVsServiceProvider。
<Import()> Private ServiceProvider As SVsServiceProvider = Nothing
[Import] internal SVsServiceProvider ServiceProvider = null;
在**GetClassifier()**方法中,加入下列程式碼。
Dim dte As DTE dte = CType(ServiceProvider.GetService(GetType(DTE)), DTE)
DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));
如果您必須使用DTE2介面,您可以將 DTE 物件轉換成它。