Freigeben über


Exemplarische Vorgehensweise: Das DTE-Objekt aus einer Editor-Erweiterung zugreifen

Indem Sie das DTE-Objekt zugreifen, können Sie Visual Studio auf unterschiedliche Arten automatisieren. Sie können das DTE-Objekt aus einem Visual Studio-Add-In abrufen, indem Sie den Programmbezeichner (ProgID) verweisen. Weitere Informationen finden Sie unter Verweisen auf Automatisierungsassemblys und das DTE2-Objekt. Im Allgemeinen in VSPackages, können Sie das DTE-Objekt abrufen, indem Sie die GetService-Methode mit dem Typ des DTE-Objekts aufrufen. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Verwaltetes VSPackages von Automatisierung erweitern. In den Erweiterungen des Managed Extensibility Framework (MEF) können Sie SVsServiceProvider importieren und die GetService-Methode einem Typ DTE aufrufen.

Vorbereitungsmaßnahmen

Zum Abschließen dieser exemplarischen Vorgehensweise müssen Sie das Visual Studio 2010 SDK installieren. Weitere Informationen über das Visual Studio-SDK und deren Verwendung finden Sie Visual Studio Extensibility Developer Center auf der MSDN-Website herunterlädt.

Das DTE-Objekt abrufen

Verwenden Sie zum Abrufen Diensterbringer vom DTE-Objekt

  1. Erstellen Sie ein Projekt Klassifizierungs C#- oder Visual Basic-Editors. Geben Sie der Projektmappe DTETest.

  2. Fügen Sie dem Projekt die folgenden Assemblys hinzu. Sie müssen Studio-Installations \ Visual Durchsuchen Ordner \ Common7 \ IDE \ PublicAssemblies \.

    • EnvDTE.dll

    • EnvDTE80.dll

    • Microsoft.VisualStudio.Shell.Immutable.10.0

  3. Wechseln Sie zur DTETest-Datei, und fügen Sie die folgenden using-Direktiven hinzu (Imports-Anweisungen in Visual Basic).

    Imports EnvDTE
    Imports EnvDTE80
    Imports Microsoft.VisualStudio.Shell
    
    using EnvDTE;
    using EnvDTE80;
    using Microsoft.VisualStudio.Shell;
    
  4. In der DTETestProvider-Klasse importieren Sie SVsServiceProvider.

    <Import()>
    Private ServiceProvider As SVsServiceProvider = Nothing
    
    [Import]
    internal SVsServiceProvider ServiceProvider = null;
    
  5. In der GetClassifier()-Methode fügen Sie den folgenden Code hinzu.

    Dim dte As DTE
    dte = CType(ServiceProvider.GetService(GetType(DTE)), DTE)
    
    DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));
    
  6. Wenn Sie die DTE2-Schnittstelle verwenden müssen, können Sie das DTE-Objekt auf diesen Typ umwandeln.

Siehe auch

Konzepte

Editor-Erweiterungs-Punkte