我是否需要在asp.net中取消订阅(手动订阅)活动?

Egi*_*sen 5 asp.net events garbage-collection page-lifecycle

有关订阅/取消订阅活动的最佳实践规则是否适用于asp.net?

我知道这可能看起来像一个愚蠢的问题,但是当我想到它时,我从未真正看到任何人们首先在页面上订阅事件然后在Web请求中取消订阅的代码.

示例1:在页面上,在Page_Load方法中,我订阅了ListView上的更新事件.我是否应该稍后取消订阅该事件,例如在OnPreRenderComplete方法中?

示例2:在被动视图模式中,视图(页面控件/用户控件)将在需要演示者执行任何操作时引发事件.因此,演示者需要订阅视图中的事件,但是还需要再次取消订阅事件吗?

最好的问候,埃吉尔.

lig*_*t78 4

当请求完成时,页面实例及其所有组件将“超出范围”,例如,它们有资格进行GC。因此,您的 ListView 及其上的页面/用户控件将超出范围。您不需要取消订阅(例如,除非您订阅属于某种单例的事件,该单例在每次请求后都存活并使用页面的方法之一作为事件处理程序)。

同样的事情对于演示者也是有效的(同样,只要该演示者仅在一页中使用并且之后超出范围)。