Freigeben über


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

  1. 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.

  2. Fügen Sie dem Projekt die folgenden Assemblyverweise hinzu:

    • Microsoft.VisualStudio.Shell.Framework
    • Microsoft.VisualStudio.Shell.Immutable.10.0
  3. Fügen Sie in der Datei DTETestProvider.cs die folgenden using-Anweisungen hinzu:

    using EnvDTE;
    using Microsoft.VisualStudio.Shell;
    
  4. Importieren Sie in der DTETestProvider-Klasse eine SVsServiceProvider.

    [Import]
    internal SVsServiceProvider ServiceProvider = null;
    
  5. Fügen Sie in der GetClassifier()-Methode den folgenden Code vor der return-Anweisung hinzu:

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

Siehe auch