Pablo Galiano : Obtaining a ServiceProvider from a non sited component

Subscriptions

<November 2008>
SuMoTuWeThFrSa
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

News

Subscribe to Pablo Galiano by Email

Post Categories

Obtaining a ServiceProvider from a non sited component

Many times we need to obtain a VS Service inside a VS Package from a component that is not sited.

We can create a ServiceProvider by using a DTE instance:

IServiceProvider serviceProvider =

                newServiceProvider(dte as Microsoft.VisualStudio.OLE.Interop.IServiceProvider);

But what if we dont have access to a DTE instance at all?

We can solve this issue by using the static GetGlobalService method of the Package class:

EnvDTE.DTE dte = Package.GetGlobalService(typeof(EnvDTE.DTE));

 

IServiceProvider serviceProvider =

    newServiceProvider(dte as Microsoft.VisualStudio.OLE.Interop.IServiceProvider);

 

IVsSolution solution = serviceProvider.GetType(SVsSolution) asIVsSolution;

Note:

We will need to add a reference to Microsoft.VisualStudio.OLE.Interop.dll and Microsoft.VisualStudio.Shell.dll

Pablo

posted on Thursday, May 10, 2007 9:50 AM by pga

# Mekhi @ Wednesday, September 19, 2007 2:19 PM

http://e5cede28013d42a398a5ef4879c3d8ae-t.uugowv.org <a href="http://e5cede28013d42a398a5ef4879c3d8ae-h.uugowv.org">e5cede28013d42a398a5ef4879c3d8ae</a> [url]http://e5cede28013d42a398a5ef4879c3d8ae-b1.uugowv.org[/url] [url=http://e5cede28013d42a398a5ef4879c3d8ae-b2.uugowv.org]e5cede28013d42a398a5ef4879c3d8ae[/url] [u]http://e5cede28013d42a398a5ef4879c3d8ae-b3.uugowv.org[/u] 514d733afec6f642f2a79083b4606e1b

Santino

# re: Obtaining a ServiceProvider from a non sited component @ Friday, January 04, 2008 8:47 AM

Muchas gracias, esto justamente era lo que estaba buscando : como acceder en forma simple a dte desde un DSL package.

Sebastian Talamoni