从 Package 派生,并且正确站点的所有托管 VSPackage 中请求自己任何全局服务。 由于包类实现 IServiceProvider,从包派生的所有 VSPackage 也是服务提供程序。
当 Visual Studio 加载托管 VSPackage 时,将 IServiceProvider 服务提供程序将包 SetSite 方法在初始化时,网站 VSPackage。 包类包装此服务提供程序并为获取服务提供 GetService 方法。
备注
由于 VSPackage 构造函数调用,在 VSPackage 网站之前,全局服务通常可用从 VSPackage 构造函数的内部。为工作区参见 如何:疑难解答服务 。
使用服务
插入此代码在任何方法除 VSPackage 构造函数:
Dim log As IVsActivityLog = TryCast(GetService(GetType(SVsActivityLog)), IVsActivityLog) If log Is Nothing Then Return End If
IVsActivityLog log = GetService(typeof(SVsActivityLog)) as IVsActivityLog; if (log == null) return;
此代码获取一 SVsActivityLog 服务并将其强制 IVsActivityLog 接口,可用于向事件日志中写入。 有关示例,请参见如何:使用事件日志。