共用方式為


逐步解說: 存取 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 物件

  1. 建立 C# 或 Visual Basic 編輯器類別器的專案。 為方案命名 DTETest。

  2. 將下列組件參考加入至專案。 您必須瀏覽至 Studio 安裝 folder\Common7\IDE\PublicAssemblies\ \Visual。

    • EnvDTE.dll

    • EnvDTE80.dll

    • Microsoft.VisualStudio.Shell.Immutable.10.0

  3. 至 DTETest 檔案,並新增下列using指示詞 (Imports Visual Basic 中的陳述式)。

    Imports EnvDTE
    Imports EnvDTE80
    Imports Microsoft.VisualStudio.Shell
    
    using EnvDTE;
    using EnvDTE80;
    using Microsoft.VisualStudio.Shell;
    
  4. DTETestProvider類別、 匯入SVsServiceProvider

    <Import()>
    Private ServiceProvider As SVsServiceProvider = Nothing
    
    [Import]
    internal SVsServiceProvider ServiceProvider = null;
    
  5. 在**GetClassifier()**方法中,加入下列程式碼。

    Dim dte As DTE
    dte = CType(ServiceProvider.GetService(GetType(DTE)), DTE)
    
    DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));
    
  6. 如果您必須使用DTE2介面,您可以將 DTE 物件轉換成它。

請參閱

概念

編輯器的擴充點