Procedura dettagliata: Accedere all'oggetto DTE da un'estensione dell'editor
In VSPackages è possibile ottenere l'oggetto DTE chiamando il GetService metodo con il tipo dell'oggetto DTE. Nelle estensioni MEF (Managed Extensibility Framework) è possibile importare SVsServiceProvider e quindi chiamare il GetService metodo con un tipo di DTE.
Prerequisiti
Per seguire questa procedura dettagliata, è necessario installare Visual Studio SDK. Per altre informazioni, vedere Visual Studio SDK.
Ottenere l'oggetto DTE
Creare un progetto VSIX C# e denominarlo DTETest. Aggiungere un modello di elemento classificatore dell'editor e denominarlo DTETest.
Per altre informazioni, vedere Creare un'estensione con un modello di elemento dell'editor.
Aggiungere i riferimenti all'assembly seguenti al progetto:
- Microsoft.VisualStudio.Shell.Framework
- Microsoft.VisualStudio.Shell.Immutable.10.0
Nel file DTETestProvider.cs aggiungere le direttive seguenti
using
:using EnvDTE; using Microsoft.VisualStudio.Shell;
DTETestProvider
Nella classe importare un oggetto SVsServiceProvider.[Import] internal SVsServiceProvider ServiceProvider = null;
GetClassifier()
Nel metodo aggiungere il codice seguente prima dell'istruzionereturn
:ThreadHelper.ThrowIfNotOnUIThread(); DTE dte = (DTE)ServiceProvider.GetService(typeof(DTE));