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
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.
Dodaj następujące odwołania do zestawu do projektu:
- Microsoft.VisualStudio.Shell.Framework
- Microsoft.VisualStudio.Shell.Immutable.10.0
W pliku DTETestProvider.cs dodaj następujące
using
dyrektywy:using EnvDTE; using Microsoft.VisualStudio.Shell;
W klasie zaimportuj
DTETestProvider
element SVsServiceProvider.[Import] internal SVsServiceProvider ServiceProvider = null;
W metodzie
GetClassifier()
dodaj następujący kod przed instrukcjąreturn
:ThreadHelper.ThrowIfNotOnUIThread(); DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));