逐步解說:從編輯器延伸模組存取 DTE 物件
在 VSPackages 中,您可以使用 DTE 物件的類型呼叫 GetService 方法,以取得 DTE 物件。 在 Managed Extensibility Framework (MEF) 擴充功能中,您可以匯入 SVsServiceProvider ,然後使用 類型DTE呼叫 GetService 方法。
必要條件
若要依照本逐步解說執行作業,您必須安裝 Visual Studio SDK。 如需詳細資訊,請參閱 Visual Studio SDK。
取得 DTE 物件
建立 C# VSIX 專案,並將其命名為 DTETest。 新增編輯器分類器項目範本,並將其命名為 DTETest。
如需詳細資訊,請參閱 使用編輯器項目範本建立延伸模組。
將下列元件參考新增至專案:
- Microsoft.VisualStudio.Shell.Framework
- Microsoft.VisualStudio.Shell.Immutable.10.0
在 DTETestProvider.cs 檔案中,新增下列
using
指示詞:using EnvDTE; using Microsoft.VisualStudio.Shell;
在類別中
DTETestProvider
,匯入 SVsServiceProvider。[Import] internal SVsServiceProvider ServiceProvider = null;
在方法中
GetClassifier()
,在 語句之前return
新增下列程序代碼:ThreadHelper.ThrowIfNotOnUIThread(); DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));