ASP.NET一般處理程序新建一個方法里使用context.Response.Write的解決方法


       最近做了幾個小例子,要用到ASP.NET的一般處理程序(Handler)。遇到了一個小問題。 解決這個小問題非常簡單,只是把函數里的局部變量變成全局變量就解決了,可是有時候人比較笨,比如像我就有點。。需要想一想。

       說一下這個小問題。在一般處理程序里,想添加一個方法,輸出一個話Hi Handler。可是發現在這個方法里沒辦法用context.Respose.Write這句。例如如下代碼:

 

namespace 圖片處理
{
    public class HandlerTest : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            SayHello();
        }

        public void SayHello()
        {
            context.Response.Write("Hi Handler");
        }


        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

  

        我們可以看到在方法SayHello里是沒辦法用context.Response.Write("Hi Handler");因為context只能在ProcessRequest里用。那這個時候怎么辦?
        我們在ProcessRequest方法外面定義在一個HttpContext的變量,例如:private HttpContext context;再在ProcessRequest給這個變量賦上值this.Context=context
例如代碼如下:

 

    public class HandlerTest : IHttpHandler
    {
        private HttpContext context;
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            this.context = context;
            SayHello();
        }

        public void SayHello()
        {
            context.Response.Write("Hi Handler");
        }


        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

   這時候SayHello方法里就可以使用context.Response.Write("Hi Handler");了,是不是很簡單呢? 對於高手的你,當然不屑一看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM