自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

描述三個(gè)C#對(duì)象的使用

開(kāi)發(fā) 后端
本文介紹三個(gè)C#對(duì)象的使用我們?cè)陂_(kāi)發(fā)ASP.NET程序時(shí)經(jīng)常會(huì)用到,通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)直觀的比較一下這三個(gè)C#對(duì)象的使用。

本文介紹HttpModule,HttpHandler,HttpHandlerFactory簡(jiǎn)單使用,這三個(gè)C#對(duì)象的使用我們?cè)陂_(kāi)發(fā)ASP.NET程序時(shí)經(jīng)常會(huì)用到,似乎很熟悉,但有時(shí)候又不太確定。本文通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)直觀的比較一下這三個(gè)C#對(duì)象的使用。
◆HttpModule:Http模塊,可以在頁(yè)面處理前后、應(yīng)用程序初始化、出錯(cuò)等時(shí)候加入自己的事件處理程序
◆HttpHandler:Http處理程序,處理頁(yè)面請(qǐng)求
◆HttpHandlerFactory:用來(lái)創(chuàng)建Http處理程序,創(chuàng)建的同時(shí)可以附加自己的事件處理程序
例子很簡(jiǎn)單,就是在每個(gè)頁(yè)面的頭部加入一個(gè)版權(quán)聲明。

一、HttpModule

這個(gè)對(duì)象我們經(jīng)常用來(lái)進(jìn)行統(tǒng)一的權(quán)限判斷、日志等處理。
例子代碼:

  1. publicclassMyModule:IHttpModule  
  2. {  
  3. publicvoidInit(HttpApplicationapplication)  
  4. {  
  5. application.BeginRequest+=newEventHandler(application_BeginRequest);  
  6. }  
  7.  
  8. voidapplication_BeginRequest(objectsender,EventArgse)  
  9. {  
  10. ((HttpApplication)sender).Response.Write("Copyright@Gspring<br/>");  
  11. }  
  12.  
  13. publicvoidDispose()  
  14. {  
  15. }  

在Init方法中可以注冊(cè)很多application的事件,我們的例子就是在開(kāi)始請(qǐng)求的時(shí)候加入自己的代碼,將版權(quán)聲明加到頁(yè)面的頭部

二、HttpHandler

這個(gè)對(duì)象經(jīng)常用來(lái)加入特殊的后綴所對(duì)應(yīng)的處理程序,比如可以限制.doc的文件只能給某個(gè)權(quán)限的人訪問(wèn)。
Asp.Net中的Page類就是一個(gè)IHttpHandler的實(shí)現(xiàn)
例子代碼:

  1. publicclassMyHandler:IHttpHandler  
  2. {  
  3. publicvoidProcessRequest(HttpContextctx)  
  4. {  
  5. ctx.Response.Write("Copyright@Gspring<br/>");  
  6. }  
  7. publicboolIsReusable  
  8. {  
  9. get{returntrue;}  
  10. }  
  11. }  

這個(gè)對(duì)象主要就是ProcessRequest方法,在這個(gè)方法中輸出版權(quán)信息,但同時(shí)也有一個(gè)問(wèn)題:原來(lái)的頁(yè)面不會(huì)被處理,也就是說(shuō)頁(yè)面中只有版權(quán)聲明了。那么所有的aspx頁(yè)面都不能正常運(yùn)行了

三、HttpHandlerFactory

這個(gè)對(duì)象也可以用來(lái)加入特殊的后綴所對(duì)應(yīng)的處理程序,它的功能比HttpHandler要更加強(qiáng)大,在系統(tǒng)的web.config中就是通過(guò)注冊(cè)HttpHandlerFactory來(lái)實(shí)現(xiàn)aspx頁(yè)面的訪問(wèn)的。

HttpHandlerFactory是HttpHandler的工廠,通過(guò)它來(lái)生成不同的HttpHandler對(duì)象。

  1. publicclassMyHandlerFactory:IHttpHandlerFactory  
  2. {  
  3. publicIHttpHandlerGetHandler(HttpContextcontext,stringrequestType,
    stringurl,stringpathTranslated)  
  4. {  
  5. PageHandlerFactoryfactory=(PageHandlerFactory)Activator.
    CreateInstance(typeof(PageHandlerFactory),true);  
  6. IHttpHandlerhandler=factory.GetHandler
    (context,requestType,url,pathTranslated);  
  7.  
  8. //執(zhí)行一些其它操作  
  9. Execute(handler);  
  10.  
  11. returnhandler;  
  12. }  
  13.  
  14. privatevoidExecute(IHttpHandlerhandler)  
  15. {  
  16. if(handlerisPage)  
  17. {  
  18. //可以直接對(duì)Page對(duì)象進(jìn)行操作  
  19. ((Page)handler).PreLoad+=newEventHandler(MyHandlerFactory_PreLoad);  
  20. }  
  21. }  
  22.  
  23. voidMyHandlerFactory_PreLoad(objectsender,EventArgse)  
  24. {  
  25. ((Page)sender).Response.Write("Copyright@Gspring<br/>");  
  26. }  
  27.  
  28. publicvoidReleaseHandler(IHttpHandlerhandler)  
  29. {  
  30. }  

以上介紹三個(gè)C#對(duì)象的使用。

【編輯推薦】

  1. 分析C#不安全代碼
  2. 淺析C#調(diào)用ImageAnimator
  3. C#連接Access、SQL Server數(shù)據(jù)庫(kù)
  4. 淺談C#固定的和活動(dòng)的變量
  5. 介紹C#中的值類型
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2009-08-21 17:48:13

C#讀取文件信息

2009-08-03 13:43:02

C#日歷控件

2009-08-27 10:31:39

C#對(duì)象初始化器

2009-08-07 15:49:46

使用C#字符串

2009-07-03 17:01:30

JSP2JSP

2009-08-13 17:22:15

C#數(shù)據(jù)集

2009-08-13 17:04:09

C#語(yǔ)言C#程序

2009-08-20 09:30:03

C#開(kāi)發(fā)WinForm

2009-08-03 16:45:02

C#異步Socket

2009-08-03 18:08:39

C# ICloneab

2009-08-17 16:32:34

C# Anonymou

2009-08-18 17:41:22

C# ListView

2009-08-26 17:49:36

C# readonly

2009-08-31 13:18:09

C# IWebMess

2009-08-31 18:32:01

C# ListBoxE

2025-03-05 10:00:00

.NET 9C#開(kāi)發(fā)

2009-09-07 15:49:55

C#屬性化的方法

2009-08-19 10:09:21

C#和C++

2025-03-17 01:43:44

2023-04-26 11:14:11

IT領(lǐng)導(dǎo)者遠(yuǎn)程工作
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)