页面的生命周期问题----页面后置代码中类什么时候实例化????
如题,在生命周期中将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。提3个问题
1:在生命周期中类的实例化在什么时候?
2:在生命周期中该类的基类的什么时候实例化?
3:在生命周期中在该类中实例化一个其他的类在什么时候?
谢谢
public partial class departmentWorksList:WGBasePage{ public Entity.DBHelper helper = new DBHelper();//随便举的个例子 protected void Page_Load(object sender, EventArgs e) { }}
using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;namespace WebApplication1{ public partial class WebForm3 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { BaseClass bc = new BaseClass(this); ChildClass cc = new ChildClass(this); Response.Write("Page_Load" + "<br>"); } } public class BaseClass { public BaseClass() { } public BaseClass(Page p) { p.Response.Write("BaseClass" + "<br>"); } } public class ChildClass : BaseClass { public ChildClass(Page p) { p.Response.Write("ChildClass" + "<br>"); } }}
[解决办法]
1、如果类是Page或者从Page上继承下来的类,那么当这个页面被访问的时候,就是对其实例化;如果是WebControl,那么一般都是在这个WebControl所在页面cs文件的InitializeComponent里,而这个InitializeComponent方法一般又是在页面的Page_Load方法中去调用,因而如果是WebControl,那么先去实例化这个WebControl所在的页面,再去实例化这个这个页面上的WebControl。
2、实例化一个类的时候,会先去找它的基类,如果有先实例化基类。
3、如果安装你写的例子中来说,helper是在departmentWorksList实例化的过程中去完成。