今天周会讨论时大家提出了一个问题,web多层应用时在业务层中如何使用web层东的session的问题,很多人认为没法做到,因为不在一个程序集中,虽然是相当简单的一个问题,但如果不深入思考一下还真容易陷入歧途。这其实和在业务层利用ConfigurationManager拿界面层的配置信息的概念是一样的,只要在业务层中拿到当前的HttpContext就可以了,因为他们运行时是在一个应用程序域中。代码很简单:
public string test()
{
HttpContext h = HttpContext.Current;
if (h.Session["lfm"] == null)
return "";
return h.Session["lfm"].ToString();
}