65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.47/5 (11投票s)

2002 年 6 月 9 日

1分钟阅读

viewsIcon

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 变量需要一些工作,但一旦你尝试了它,我认为你会发现你的代码更加整洁且没有错误。

© . All rights reserved.