如何在类库中访问HttpContext.Current.Session?

时间:2014-01-11 19:57:37

标签: session c#-4.0 httpcontext class-library system.web

所以,我正在创建一个类库来处理用户信息,如用户名,密码等。我想这样做,这样我就可以用我的任何web应用程序引用这个库,而不必不断重写用户信息一部分。

在用户信息类库中,我想处理登录。我之前在使用HttpContext.Current.Session的app_code中完成了这项工作,该app_code是Web项目的一部分。但是,当我尝试在我的类库中使用它时(即使在using System.Web时)它会抛出一个编译错误,说明在此上下文中不存在HttpContext。我怎样才能访问它?

1 个答案:

答案 0 :(得分:8)

在创建一个与HttpContext等依赖项一起使用的实用程序类型类时,最好的办法是通过构造函数或方法调用将上下文或会话传递给类。这样,您的类的消费者明确表示它需要此对象才能运行。这也允许您单独测试您的课程。

更好的是,如果您正在使用一些具有基本类型的特定属性,那么您可以接受这些属性作为输入。这样,您就不会为实用程序库的UI框架创建任何依赖项。