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 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。