在 ASP.NET 中创建类型化会话状态






4.47/5 (11投票s)
2002 年 6 月 9 日
1分钟阅读

120360
在 ASP.NET 中封装 Session 对象,以防止编程错误并保持代码整洁
通常,使用强类型对象或接口进行开发比处理松散类型接口更容易。 许多常见错误可以在编译时而不是运行时捕获,从而加快开发速度。
一直困扰我的关于 ASP.NET 中 Session
对象的一点是,它是松散类型的,将所有内容作为 Object 基类型返回。 更令人烦恼的是,Session
对象要求您传递一个字符串键来获取所需的对象。 我不知道有多少次我忘记了用于某段数据的键是什么,不得不搜索我的代码来找到它。 在单独的文档中维护数据字典有所帮助,但我有时会开始使用新的数据,然后忘记更新我的字典!
在开发了一个在我的代码中散布着 Session
对象的应用程序后,我意识到我可以创建一个对象来封装 Session
对象并清理我的代码。 它看起来像这样
public class State {
public static int CustomerId{
get{ return (int)HttpContext.Current.Session["CustomerId"]; }
set{ HttpContext.Current.Session["CustomerId"] = value; }
}
}
现在,曾经是这样的代码
DataTable tbl = GetInvoices((int)Session[“CustomerId”]);
现在看起来像这样
DataTable tbl = GetInvoices(State.CustomerId);
设置每个 session
变量需要一些工作,但一旦你尝试了它,我认为你会发现你的代码更加整洁且没有错误。