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 安全性

请参见

参考

IVsPackage 接口

Microsoft.VisualStudio.Shell.Interop 命名空间