ServiceProvider 类

用于管理的 Vspackage 提供统一的服务提供程序。

继承层次结构

System.Object
  Microsoft.VisualStudio.Shell.ServiceProvider

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

语法

声明
<ComVisibleAttribute(True)> _
Public NotInheritable Class ServiceProvider _
    Implements IServiceProvider, IDisposable, IObjectWithSite
[ComVisibleAttribute(true)]
public sealed class ServiceProvider : IServiceProvider, 
    IDisposable, IObjectWithSite

ServiceProvider 类型公开以下成员。

构造函数

  名称 说明
公共方法 ServiceProvider(IServiceProvider) 初始化与现有 IServiceProvider 接口的实例。
公共方法 ServiceProvider(IServiceProvider, Boolean) 初始化 ServiceProvider 类的新实例与现有 IServiceProvider 对象的和可选择将所有请求都 foundation 服务提供程序。

页首

属性

  名称 说明
公共属性静态成员 GlobalProvider 获取调用的线程的全局服务提供程序。

页首

方法

  名称 说明
公共方法静态成员 CreateFromSetSite 创建特定站点的新服务提供程序 (ssp)。
公共方法 Dispose 释放由 ServiceProvider 对象使用的资源。
公共方法 Equals 确定指定的对象是否等于当前对象。 (继承自 Object。)
公共方法 GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
公共方法 GetService(Guid) 从非托管服务提供程序中获取该项将指定的服务。
公共方法 GetService(Type) gets 类型基于非托管服务提供程序的服务。
公共方法 GetType 获取当前实例的 Type。 (继承自 Object。)
公共方法 QueryService(Guid, Object%)
公共方法 QueryService(Type, Object%)
公共方法 ToString 返回表示当前对象的字符串。 (继承自 Object。)

页首

显式接口实现

  名称 说明
显式接口实现私有方法 IObjectWithSite.GetSite 获取要解析服务的当前站点对象。
显式接口实现私有方法 IObjectWithSite.SetSite 设置为解析服务的网站对象。

页首

备注

此类为托管 Vspackage 提供统一的服务提供程序。它实现 IServiceProvider 并执行 IServiceProvider 实例作为构造函数参数。

此类支持 GUID 和类型基于外观。它还检查常规本机实现 bug,例如不实现 IUnknown 接口或具有匹配的 SID。需要特定 IID 的对象。

此类在 .NET framework (也称为 “checked”版本) 的调试版本还提供调试支持。设置为 TraceVerbose 的跟踪开关 TRACESERVICE 导致所有服务请求是输出到调试侦听器。

此外,在中,当向前服务请求对本机代码时, ServiceProvider 测试某些情况。,指定在解析的服务,但是,最本机的查询不时,托管代码需要 IUnknown 接口。如果非托管服务不能通过 IUnknownIID 获取此外,在控件中与 IID 位置的 SID 的生成调用。ServiceProvider 引发断言 SID 查询是否成功。

说明说明

返回一次成功的 SID 查询的结果在签入生成的在 VSPackage 中调试版本和零售生成产生不同的行为,因此,断言引发。

除了转换为 COM 服务提供程序的服务请求之外, ServiceProvider 类提供以下非可替换的服务:

IServiceProvider

提供对本机 COM 服务提供程序对象。服务提供程序对象可用于为其他接口直接查询。

IObjectWithSite

提供一种替换 COM 服务提供程序。在 Visual Studio 中的多个地方对象是第一个给定的站点和之后另一种方法,本地化的站点。该本地化的站点可以通过传递给服务提供程序的 IObjectWithSite 实现创建单个服务的联系人。( SetSite 方法将被忽略,如果站点不实现 IServiceProvider。)

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

请参见

参考

Microsoft.VisualStudio.Shell 命名空间