一般处理程序自定义方法里使用context.Response.Write()

在一般处理程序里,想添加一个方法,输出一个话Hi Handler。可是发现在这个方法里没办法用context.Respose.Write这句。例如如下代码:

  1.  namespace 图片 处 理
  2. {
  3.    public class HandlerTest : IHttpHandler
  4.    {
  5.       public void ProcessRequest( HttpContext context )
  6.       {
  7.          context.Response.ContentType = "text/plain";
  8.          SayHello();
  9.       }
  10.  
  11.  
  12.       public void SayHello()
  13.       {
  14.          context.Response.Write( "Hi Handler" );
  15.       }
  16.  
  17.  
  18.       public bool IsReusable
  19.       {
  20.          get
  21.          {
  22.             return(false);
  23.          }
  24.       }
  25.    }
  26. }

我们可以看到在方法SayHello里是没办法用context.Response.Write("Hi Handler");因为context只能在ProcessRequest里用。那这个时候怎么办?

我们在ProcessRequest方法外面定义在一个HttpContext的变量,例如:private HttpContext context;再在ProcessRequest给这个变量赋上值this.Context=context

例如代码如下:

  1.  public class HandlerTest : IHttpHandler
  2. {
  3.    private HttpContext context;
  4.    public void ProcessRequest( HttpContext context )
  5.    {
  6.       context.Response.ContentType = "text/plain";
  7.       this.context = context;
  8.       SayHello();
  9.    }
  10.  
  11.  
  12.    public void SayHello()
  13.    {
  14.       context.Response.Write( "Hi Handler" );
  15.    }
  16.  
  17.  
  18.    public bool IsReusable
  19.    {
  20.       get
  21.       {
  22.          return(false);
  23.       }
  24.    }
  25. }

这时候SayHello方法里就可以使用context.Response.Write("Hi Handler");了,是不是很简单呢?对于高手的你,当然不屑一看。

   

来自 <http://www.cnblogs.com/cxeye/archive/2012/07/22/2603553.html>

posted @ 2013-04-21 22:21  Mr.Leo  阅读(2859)  评论(0编辑  收藏  举报