我有一个继承自System.Web.UI.Page的类的类。通常它看起来像这样:
public class ToolPage : System.Web.UI.Page
public partial class EmailAnswer : ToolPage
此EmailAnswer类包含一些自定义对象,例如:
private EmailTemplate _emailTemplate
{
get
{
return (EmailTemplate)ViewState["_emailTemplate"];
}
set
{
ViewState["_emailTemplate"] = value;
}
}
这个对象实现了IDisposable,所以我在EmailAnsewr类中添加了这样的代码:
public sealed override void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
if (_emailTemplate != null)
_emailTemplate.Dispose();
}
if (_groupsEmailTargets!= null)
_groupsEmailTargets= null;
if (_emailAttachments != null)
_emailAttachments = null;
}
此object_emailTemplate仅在第一个Page_load事件上加载到ViewState,稍后当我提交表单时使用_emailTemplate。现在在第一篇文章回来我失去了这个对象,因为调用了Dispose。
那么应该如何实现这种处理?