Exemplarische Vorgehensweise: Zugreifen auf das DTE-Objekt über eine Editor-Erweiterung
In VSPackages können Sie das DTE-Objekt abrufen, indem Sie die GetService-Methode mit dem Typ des DTE-Objekts aufrufen. In MEF-Erweiterungen (Managed Extensibility Framework) können Sie SVsServiceProvider importieren und dann die GetService-Methode mit dem Typ DTE aufrufen.
Voraussetzungen
Um dieser exemplarischen Vorgehensweise folgen zu können, müssen Sie das Visual Studio SDK installieren. Weitere Informationen finden Sie unter Visual Studio SDK.
Abrufen des DTE-Objekts
Erstellen Sie ein C#-VSIX-Projekt, und nennen Sie es DTETest. Fügen Sie eine Editor Classifier-Elementvorlage hinzu, und nennen Sie sie DTETest.
Weitere Informationen finden Sie unter Erstellen einer Erweiterung mit einer Editorelementvorlage.
Fügen Sie dem Projekt die folgenden Assemblyverweise hinzu:
- Microsoft.VisualStudio.Shell.Framework
- Microsoft.VisualStudio.Shell.Immutable.10.0
Fügen Sie in der Datei DTETestProvider.cs die folgenden
using
-Anweisungen hinzu:using EnvDTE; using Microsoft.VisualStudio.Shell;
Importieren Sie in der
DTETestProvider
-Klasse eine SVsServiceProvider.[Import] internal SVsServiceProvider ServiceProvider = null;
Fügen Sie in der
GetClassifier()
-Methode den folgenden Code vor derreturn
-Anweisung hinzu:ThreadHelper.ThrowIfNotOnUIThread(); DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));