The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

Package.GetService Method

Gets type-based services from the VSPackage service container.

This method is not CLS-compliant.  

Namespace: Microsoft.VisualStudio.Shell
Assembly: Microsoft.VisualStudio.Shell (in

protected Object GetService (
	Type serviceType
protected Object GetService (
	Type serviceType
protected function GetService (
	serviceType : Type
) : Object



The type of service to retrieve.

Return Value

An instance of the requested service, or a null reference (Nothing in Visual Basic) if the service could not be found.

Exception typeCondition


serviceType is a null reference (Nothing in Visual Basic).

Managed VSPackages can use GetService to get Environment SDK COM interfaces by querying the interop assemblies of the SDK.

To get a specific Environment SDK interface:

  1. GetService should be called with a serviceType returned by using that interface as an argument to typeof.

  2. The return value of GetService must be cast to the interface type.

The casting is necessary because GetService searches for on the basis service type GUID with an interface type of IUnknown.

For example, one could get an IVsUIShell interface with:

myUIShell = myPackage.GetService(System.typeof(IVsUIShell)) as IVsUIShell;


For historical reasons, the IVsTextManager interface cannot be obtained in this manner. To obtain an IVsTextManager interface, first use VsTextManagerClass (the class implementing the interface) as the argument to typeof, then cast the return value of GetService to IVsTextManager, for instance: IVsTextManager mytext_mgr = myPackage.GetService(System.typeof(VsTextManagerClass)) as IVsTextManager;

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

© 2014 Microsoft