Tutorial: Acceso al objeto DTE desde una extensión del editor
En VSPackages, puede obtener el objeto DTE llamando al método GetService con el tipo del objeto DTE. En Managed Extensibility Framework (MEF), puede importar SVsServiceProvider y después llamar al método GetService con un tipo de DTE.
Requisitos previos
Para seguir este tutorial, debe instalar SDK de Visual Studio. Para obtener más información, vea SDK de Visual Studio.
Obtener el objeto DTE
Cree un proyecto VSIX de C# y asígnele el nombre DTETest. Agregue una plantilla de elemento Clasificador de editor y asígnele el nombre DTETest.
Para obtener más información, vea Creación de una extensión con una plantilla de elemento de editor.
Agregue las referencias de ensamblado siguientes al proyecto:
- Microsoft.VisualStudio.Shell.Framework
- Microsoft.VisualStudio.Shell.Immutable.10.0
En el archivo DTETestProvider.cs, agregue las directivas
using
siguientes:using EnvDTE; using Microsoft.VisualStudio.Shell;
En la clase
DTETestProvider
, importe un objeto SVsServiceProvider.[Import] internal SVsServiceProvider ServiceProvider = null;
En el método
GetClassifier()
, agregue el código siguiente antes de la instrucciónreturn
:ThreadHelper.ThrowIfNotOnUIThread(); DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));