Partager via


Procédure pas - à - pas : Accès de l'objet DTE d'une extension de l'éditeur

En accédant à l'objet DTE, vous pouvez automatiser Visual Studio de différentes façons. Vous pouvez obtenir l'objet DTE d'un complément Visual Studio en faisant référence à son progid (ou à progID). Pour plus d'informations, consultez Référencement des assemblys d'automation et de l'objet DTE2. En général dans les VSPackages, vous pouvez obtenir l'objet DTE en appelant la méthode d' GetService avec le type de l'objet DTE. Pour plus d'informations, consultez Procédure pas - à - pas : Étendre les VSPackages managé à l'aide de automation. Dans les extensions managées (MEF) managed extensibility framework, vous pouvez importer SVsServiceProvider et appeler la méthode d' GetService avec un type d' DTE.

Composants requis

Pour exécuter cette procédure, vous devez installer Visual Studio 2010 Kit de développement logiciel. Pour plus d'informations sur le kit de développement Visual Studio et comment télécharger le, consultez Centre pour développeurs d'extensibilité Visual Studio sur le site Web MSDN.

Obtention de l'objet DTE

Pour obtenir l'objet DTE du serviceprovider

  1. Créez un projet c# ou du classifieur Visual Basic Editor. Nommez la solution DTETest.

  2. Ajoutez les références d'assembly suivantes au projet. Vous devez accéder à \Visual Studio installation folder\Common7\IDE\PublicAssemblies \.

    • EnvDTE.dll

    • EnvDTE80.dll

    • Microsoft.VisualStudio.Shell.Immutable.10.0

  3. Accédez au fichier de DTETest, puis ajoutez les directives suivantes d' using (instructions d'Imports en Visual Basic).

    Imports EnvDTE
    Imports EnvDTE80
    Imports Microsoft.VisualStudio.Shell
    
    using EnvDTE;
    using EnvDTE80;
    using Microsoft.VisualStudio.Shell;
    
  4. Dans la classe d' DTETestProvider , importez SVsServiceProvider.

    <Import()>
    Private ServiceProvider As SVsServiceProvider = Nothing
    
    [Import]
    internal SVsServiceProvider ServiceProvider = null;
    
  5. Dans la méthode d' GetClassifier() , ajoutez le code suivant.

    Dim dte As DTE
    dte = CType(ServiceProvider.GetService(GetType(DTE)), DTE)
    
    DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));
    
  6. Si vous devez utiliser l'interface d' DTE2 , vous pouvez effectuer un cast de l'objet DTE lui.

Voir aussi

Concepts

Points d'extension de l'éditeur