项目改进原因:
目前的项目,大家每做一个页面,都需要获取人员相关信息,重复了大量工作,并且在此处如果尽兴相关修改,任务极其繁重,基本上涉及了所有页面的修改
不利于程序的维护
代码
protected void Page_Load(object sender, EventArgs e)
{
Ajax.Utility.RegisterTypeForAjax(typeof(mzdz));
if (!IsPostBack)
{
if (Comm.getCookies().ry_id != null && !Comm.getCookies().ry_id.ToString().Equals("")) //cookies不为空
{
...
}
else
{
Comm.Timeout(this); //弹出提示,跳转到登陆页面
}
}
}
{
Ajax.Utility.RegisterTypeForAjax(typeof(mzdz));
if (!IsPostBack)
{
if (Comm.getCookies().ry_id != null && !Comm.getCookies().ry_id.ToString().Equals("")) //cookies不为空
{
...
}
else
{
Comm.Timeout(this); //弹出提示,跳转到登陆页面
}
}
}
所以对项目改进如下,在App文件夹中,新建一个类,取名为webPage,将大量相同的操作的都放在这个类里面来写,同时,该类里面,还获取了相关人员的全部信息,及出错后的解决方法等等
代码
/// <summary>
/// 获取人员信息
/// </summary>
/// <returns></returns>
public Person GetPerson()
{
Person person = new Person();
if (HttpContext.Current.Request.Cookies["dw_zfssdy"] != null)
{
person.RYID = Utilities.Decrypto(HttpContext.Current.Request.Cookies["dw_zfssdy"].Values["ID"].ToString());
person.RYMC = Utilities.Decrypto(HttpContext.Current.Request.Cookies["dw_zfssdy"].Values["MC"].ToString());
}
return person;
}
public webPage()
{
person = GetPerson();
if (String.IsNullOrEmpty(person.RYID))
{
AlertMSG.TimeOut(this);
}
}
protected void Page_Error(object sender, EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException();
...
Server.ClearError();
}
/// 获取人员信息
/// </summary>
/// <returns></returns>
public Person GetPerson()
{
Person person = new Person();
if (HttpContext.Current.Request.Cookies["dw_zfssdy"] != null)
{
person.RYID = Utilities.Decrypto(HttpContext.Current.Request.Cookies["dw_zfssdy"].Values["ID"].ToString());
person.RYMC = Utilities.Decrypto(HttpContext.Current.Request.Cookies["dw_zfssdy"].Values["MC"].ToString());
}
return person;
}
public webPage()
{
person = GetPerson();
if (String.IsNullOrEmpty(person.RYID))
{
AlertMSG.TimeOut(this);
}
}
protected void Page_Error(object sender, EventArgs e)
{
Exception objErr = Server.GetLastError().GetBaseException();
...
Server.ClearError();
}
这样,在日后的开发中,只会要将
public partial class qxgl_js_id : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
改进为继承自我们自己的webPage
public partial class qxgl_js_id : webPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
这样,大量重复判断cookies的方法就不用其他程序员去关心了,当Cookies不存在的时候,在页面加载到我们自己的webPage的时候,就已经被处理了。
同时,在该页面,还可以方便的获取人员相关信息
代码
public partial class qxgl_js_id : webPage
{
protected void Page_Load(object sender, EventArgs e)
{
string m_ryid = this.person.RYID;
string m_rymc = this.person.RYMC;
{
protected void Page_Load(object sender, EventArgs e)
{
string m_ryid = this.person.RYID;
string m_rymc = this.person.RYMC;
...
}
}
}
}
灵活的运用继承,会给程序开发带来很大的方便。
比如日后我们所有的类都继承自一个可序列化的自定义类,这样,所有的类都可以被序列化以方便操作
[Serializable]
public class BaseClass
{
public BaseClass()
{
}
}
public class BaseClass
{
public BaseClass()
{
}
}
/// <summary>
/// Person 的摘要说明
/// </summary>
public class Person : BaseClass
{
public Person()
{
...
}
}
/// Person 的摘要说明
/// </summary>
public class Person : BaseClass
{
public Person()
{
...
}
}
先写这么多,陆续还会有更多的改进。