ServiceProvider.GetService 方法 (Type)

gets 类型基于非托管服务提供程序的服务。

命名空间:  Microsoft.VisualStudio.Shell
程序集:  Microsoft.VisualStudio.Shell.11.0(在 Microsoft.VisualStudio.Shell.11.0.dll 中)

语法

声明
Public Function GetService ( _
    serviceType As Type _
) As Object
public Object GetService(
    Type serviceType
)

参数

  • serviceType
    类型:System.Type
    要检索的服务类型。此类型 GUID 用于从本机服务提供程序的服务。

返回值

类型:System.Object
请求的服务或 nullnull 引用(在 Visual Basic 中为 Nothing) ,如果找不到服务。

实现

IServiceProvider.GetService(Type)

备注

托管 Vspackage 可以通过查询互操作程序集使用 GetService 获取 VSSDK COM 接口。有关更多信息,请参见 Interop Namespaces

获取特定 VSSDK 接口:

  • 应调用GetService 与 serviceType 返回使用该接口为 typeof的参数。

  • 必须将 GetService 的返回值赋给接口类型。该转换是必需的,因为 GetService 查询提供该服务的 GUID 的输入类型。在实现服务的类的一 IUnknown 接口然后返回,并且必须将获取所需的对象。(在 foundation 服务必须支持对象。)

    例如,可以获取一 IVsUIShell 接口与:

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

在以前的原因,不能按照这种方式获取的 IVsTextManager 接口。若要获取 IVsTextManager 接口,第一个使用 VsTextManagerClass (实现接口) 的类 (如) 作为参数传递给 typeof,然后将 GetService 的返回值。 IVsTextManager,例如:

IVsTextManager mytext_mgr = myPackage.GetService(System.typeof(VsTextManagerClass)) as IVsTextManager;

.NET Framework 安全性

请参见

参考

ServiceProvider 类

GetService 重载

Microsoft.VisualStudio.Shell 命名空间