Compartir a través de


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

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

  2. Agregue las referencias de ensamblado siguientes al proyecto:

    • Microsoft.VisualStudio.Shell.Framework
    • Microsoft.VisualStudio.Shell.Immutable.10.0
  3. En el archivo DTETestProvider.cs, agregue las directivas using siguientes:

    using EnvDTE;
    using Microsoft.VisualStudio.Shell;
    
  4. En la clase DTETestProvider, importe un objeto SVsServiceProvider.

    [Import]
    internal SVsServiceProvider ServiceProvider = null;
    
  5. En el método GetClassifier(), agregue el código siguiente antes de la instrucción return:

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

Consulte también