IVsPackage.Close 方法
关闭 VSPackage,释放缓存的接口指针和 unadvises 事件接收器。
命名空间: Microsoft.VisualStudio.Shell.Interop
程序集: Microsoft.VisualStudio.Shell.Interop(在 Microsoft.VisualStudio.Shell.Interop.dll 中)
语法
声明
Function Close As Integer
int Close()
返回值
类型:System.Int32
如果方法成功,则返回 S_OK。如果失败,它会返回一个错误代码。
备注
此方法将清理所有外部引用以及中断任何引用计数循环。在所有 Vspackage 的 Close 调用方法后,该环境释放所有所提供的服务。
应遵循下面的语义。 Close 方法的实现:
在 VSPackage 加载,它不会卸载,直到环境应用程序结束。如果一个 VSPackage Close 方法调用,则每个 VSPackage Close 方法调用。这意味着特定 VSPackage 处理自己的关闭和清理要求。
VSPackage 将清理所有外部引用。" 关闭的方法将会中断所有引用计数循环,并鼓励所有引用计数最终到达零。您应释放缓存的接口指针, unadvise 事件接收器,并提供了其他必要的清理职责。Vspackage 必须确保保留所有引用计数。,当 Close 调用方法时, VSPackage 不能删除对象。
该环境和所有已加载的 Vspackage 的所有服务保持可访问 Close 方法实现时。VSPackage,但是,必须预期服务不可用,并确保成功的唯一方法是 unadvise 方法。大多数服务预期失败,建议新的事件接收器,或创建新资源。
VSPackage 不应调用其 Close 实现方法的 RevokeService 方法。所有服务项目保持可用于对 Vspackage 的结束时间。该环境自动移除,并修订在 Vspackage 后的服务调用 Close。
返回从 Close的错误是无意义的。所有错误返回值将被忽略,并且该环境完成关闭进程,一旦启动。VSPackage 在其 QueryClose 方法有机会停止关闭进程。
如果该包需要阻止 IDE 中关闭它应实现 IVsPackage2。
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。