我目前有一个 webclient 类,它使用会话变量为我的 web 应用程序维护会话,但我想改用 cookie 来维护会话。我当然无权访问此类中的 ASP.NET 响应和请求变量。我是否必须将这些对象传递给 webclient 类?
问问题
3057 次
2 回答
2
不确定您要实现什么,但在 ASP.NET 应用程序内的任何自定义类中,您都可以通过以下方式访问请求和响应
HttpContext.Current.Request
和
HttpContext.Current.Response
于 2013-08-21T00:57:03.270 回答
1
正如 Yuriy 指出的那样,您可以直接通过 HttpContext.Current 命名空间访问请求/响应对象,但是这是不好的做法。你的类依赖于请求/响应对象,这些应该通过它的构造函数传递给你的类。
例如
public class SessionExample{
public SessionExample(System.Web.HttpRequest request, System.Web.HttpResponse response){
}
}
或者,如果您的课程的寿命超过单个 http 请求的持续时间,您可以将它们作为方法参数传递
public class SessionExample{
public SessionExample(){
}
public void DoSomething(System.Web.HttpRequest request, System.Web.HttpResponse response){
}
}
以这种方式构建您的代码可以使其更具可测试性,并且可以避免您在以后遇到麻烦。
于 2013-08-21T03:30:12.217 回答