Udostępnij za pośrednictwem


Przewodnik: uzyskiwanie dostępu do obiektu DTE z poziomu rozszerzenia edytora

W pakietach VSPackage można uzyskać obiekt DTE, wywołując metodę GetService z typem obiektu DTE. W rozszerzeniach managed extensibility Framework (MEF) można zaimportować SVsServiceProvider , a następnie wywołać metodę GetService z typem DTE.

Wymagania wstępne

Aby wykonać czynności opisane w tym przewodniku, należy zainstalować zestaw Visual Studio SDK. Aby uzyskać więcej informacji, zobacz Visual Studio SDK.

Pobieranie obiektu DTE

  1. Utwórz projekt VSIX w języku C# i nadaj mu nazwę DTETest. Dodaj szablon elementu Klasyfikatora edytora i nadaj mu nazwę DTETest.

    Aby uzyskać więcej informacji, zobacz Tworzenie rozszerzenia za pomocą szablonu elementu edytora.

  2. Dodaj następujące odwołania do zestawu do projektu:

    • Microsoft.VisualStudio.Shell.Framework
    • Microsoft.VisualStudio.Shell.Immutable.10.0
  3. W pliku DTETestProvider.cs dodaj następujące using dyrektywy:

    using EnvDTE;
    using Microsoft.VisualStudio.Shell;
    
  4. W klasie zaimportuj DTETestProvider element SVsServiceProvider.

    [Import]
    internal SVsServiceProvider ServiceProvider = null;
    
  5. W metodzie GetClassifier() dodaj następujący kod przed instrukcją return :

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

Zobacz też