Compartilhar via


Passo a passo: Acessando o objeto DTE de uma extensão do Editor

Acessando o objeto DTE, você pode automatizar o Visual Studio de diversas maneiras. Você pode obter o objeto DTE de uma Visual Studio suplemento referindo-se ao seu identificador programático (ou progID). Para mais informações, consulte Referenciando assemblies de automação e o objeto DTE2. Em geral em VSPackages, você pode obter o objeto DTE chamando o GetService método com o tipo de objeto DTE. Para mais informações, consulte Passo a passo: Estendendo gerenciados VSPackages usando a automação. Extensões de Managed Extensibility Framework (MEF), você pode importar SVsServiceProvider e então chamar o GetService método com um tipo de DTE.

Pré-requisitos

Para concluir esta explicação passo a passo, você deve instalar o Visual Studio 2010 SDK. Para obter informações sobre o SDK do Visual Studio e como baixá-lo, consulte Visual Studio extensibilidade Developer Center no site do MSDN.

Obtendo o objeto DTE

Para obter o objeto DTE de ServiceProvider

  1. Crie um projeto de C# ou Visual Basic Editor classificador. Nomeie a solução DTETest.

  2. Adicione as seguintes referências de assembly ao projeto. Você deve procurar \Visual Studio folder\Common7\IDE\PublicAssemblies\ de instalação.

    • EnvDTE.dll

    • EnvDTE80.dll

    • Microsoft.VisualStudio.Shell.Immutable.10.0

  3. Vá para o arquivo DTETest e adicione o seguinte using diretivas (Imports as instruções em Visual Basic).

    Imports EnvDTE
    Imports EnvDTE80
    Imports Microsoft.VisualStudio.Shell
    
    using EnvDTE;
    using EnvDTE80;
    using Microsoft.VisualStudio.Shell;
    
  4. No DTETestProvider classe, importar uma SVsServiceProvider.

    <Import()>
    Private ServiceProvider As SVsServiceProvider = Nothing
    
    [Import]
    internal SVsServiceProvider ServiceProvider = null;
    
  5. No GetClassifier() método, adicione o seguinte código.

    Dim dte As DTE
    dte = CType(ServiceProvider.GetService(GetType(DTE)), DTE)
    
    DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));
    
  6. Se você tiver que usar o DTE2 interface, você pode converter o objeto DTE para ele.

Consulte também

Conceitos

Pontos de extensão do Editor