次の方法で共有


チュートリアル: エディター拡張機能から DTE オブジェクトにアクセスする

VSPackage では、DTE オブジェクトの型を使用して GetService メソッドを呼び出すと、DTE オブジェクトを取得できます。 Managed Extensibility Framework (MEF) 拡張機能では、SVsServiceProvider をインポートしてから、DTE の型使用して GetService メソッドを呼び出すことができます。

前提条件

このチュートリアルを行うには、Visual Studio SDK をインストールする必要があります。 詳細については、「Visual Studio SDK」を参照してください。

DTE オブジェクトを取得する

  1. C# VSIX プロジェクトを作成し、DTETest という名前を付けます。 エディター分類子項目テンプレートを追加し、DTETest という名前を付けます。

    詳細については、「エディター項目テンプレートを使用して拡張機能を作成する」を参照してください。

  2. 次のアセンブリ参照をプロジェクトに追加します。

    • Microsoft.VisualStudio.Shell.Framework
    • Microsoft.VisualStudio.Shell.Immutable.10.0
  3. DTETestProvider.cs ファイルで、次の using ディレクティブを追加します。

    using EnvDTE;
    using Microsoft.VisualStudio.Shell;
    
  4. DTETestProvider クラスで、SVsServiceProvider をインポートします。

    [Import]
    internal SVsServiceProvider ServiceProvider = null;
    
  5. GetClassifier() メソッドで、return ステートメントの前に次のコードを追加します。

    ThreadHelper.ThrowIfNotOnUIThread();
    DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));
    

関連項目