在哪里处置ASP.net页面的IDisposable成员?

时间:2009-07-28 13:56:06

标签: .net asp.net idisposable

处理ASP.net页面的IDisposable成员的最佳做法是什么?

我应该......,

  • 使用Page_Unload(object sender, EventArgs e)事件
  • 覆盖void Dispose()
  • Control方法
  • 别的......

...

2 个答案:

答案 0 :(得分:2)

理想情况下,应该没有。在ASP.NET页面中,您应该使用using(...) { ... }构造,它立即处理对象。如果你的页面成员需要处理,那可能表明设计不好,所以考虑将这些对象放在会话状态或缓存中。

任何回发都应该只在页面上调用一个公共方法,所以除了作为方法参数传递之外,不需要共享状态(我想如果你使用的话,总是有IoC容器参数,但是所有的赌注都是由于WebForms并非真正针对IoC使用,所以已经关闭了。

答案 1 :(得分:2)

如果您必须将IDisposable对象作为页面成员,那么我将在卸载阶段使用:

http://msdn.microsoft.com/en-us/library/ms178472.aspx