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
Crie um projeto de C# ou Visual Basic Editor classificador. Nomeie a solução DTETest.
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
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;
No DTETestProvider classe, importar uma SVsServiceProvider.
<Import()> Private ServiceProvider As SVsServiceProvider = Nothing
[Import] internal SVsServiceProvider ServiceProvider = null;
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));
Se você tiver que usar o DTE2 interface, você pode converter o objeto DTE para ele.