1

我目前有一个 webclient 类,它使用会话变量为我的 web 应用程序维护会话,但我想改用 cookie 来维护会话。我当然无权访问此类中的 ASP.NET 响应和请求变量。我是否必须将这些对象传递给 webclient 类?

4

2 回答 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 回答