成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

描述三個C#對象的使用

開發 后端
本文介紹三個C#對象的使用我們在開發ASP.NET程序時經常會用到,通過一個簡單的例子來直觀的比較一下這三個C#對象的使用。

本文介紹HttpModule,HttpHandler,HttpHandlerFactory簡單使用,這三個C#對象的使用我們在開發ASP.NET程序時經常會用到,似乎很熟悉,但有時候又不太確定。本文通過一個簡單的例子來直觀的比較一下這三個C#對象的使用。
◆HttpModule:Http模塊,可以在頁面處理前后、應用程序初始化、出錯等時候加入自己的事件處理程序
◆HttpHandler:Http處理程序,處理頁面請求
◆HttpHandlerFactory:用來創建Http處理程序,創建的同時可以附加自己的事件處理程序
例子很簡單,就是在每個頁面的頭部加入一個版權聲明。

一、HttpModule

這個對象我們經常用來進行統一的權限判斷、日志等處理。
例子代碼:

  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方法中可以注冊很多application的事件,我們的例子就是在開始請求的時候加入自己的代碼,將版權聲明加到頁面的頭部

二、HttpHandler

這個對象經常用來加入特殊的后綴所對應的處理程序,比如可以限制.doc的文件只能給某個權限的人訪問。
Asp.Net中的Page類就是一個IHttpHandler的實現
例子代碼:

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

這個對象主要就是ProcessRequest方法,在這個方法中輸出版權信息,但同時也有一個問題:原來的頁面不會被處理,也就是說頁面中只有版權聲明了。那么所有的aspx頁面都不能正常運行了

三、HttpHandlerFactory

這個對象也可以用來加入特殊的后綴所對應的處理程序,它的功能比HttpHandler要更加強大,在系統的web.config中就是通過注冊HttpHandlerFactory來實現aspx頁面的訪問的。

HttpHandlerFactory是HttpHandler的工廠,通過它來生成不同的HttpHandler對象。

  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. //執行一些其它操作  
  9. Execute(handler);  
  10.  
  11. returnhandler;  
  12. }  
  13.  
  14. privatevoidExecute(IHttpHandlerhandler)  
  15. {  
  16. if(handlerisPage)  
  17. {  
  18. //可以直接對Page對象進行操作  
  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. }  

以上介紹三個C#對象的使用。

【編輯推薦】

  1. 分析C#不安全代碼
  2. 淺析C#調用ImageAnimator
  3. C#連接Access、SQL Server數據庫
  4. 淺談C#固定的和活動的變量
  5. 介紹C#中的值類型
責任編輯:佚名 來源: 博客園
相關推薦

2009-08-03 13:43:02

C#日歷控件

2009-08-21 17:48:13

C#讀取文件信息

2009-08-27 10:31:39

C#對象初始化器

2009-08-07 15:49:46

使用C#字符串

2009-07-03 17:01:30

JSP2JSP

2009-08-13 17:04:09

C#語言C#程序

2009-08-13 17:22:15

C#數據集

2009-08-17 16:32:34

C# Anonymou

2009-08-18 17:41:22

C# ListView

2009-08-31 13:18:09

C# IWebMess

2009-08-26 17:49:36

C# readonly

2009-08-03 18:08:39

C# ICloneab

2009-08-31 18:32:01

C# ListBoxE

2009-08-20 09:30:03

C#開發WinForm

2009-08-03 16:45:02

C#異步Socket

2025-03-05 10:00:00

.NET 9C#開發

2009-09-07 15:49:55

C#屬性化的方法

2009-08-19 10:09:21

C#和C++

2023-04-26 11:14:11

IT領導者遠程工作

2025-03-17 01:43:44

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产小视频在线 | 国产一级片免费视频 | 欧美 中文字幕 | 日本色综合 | 亚洲视频二区 | 精品久久久久久亚洲综合网站 | 久久久久久久久久久久久久久久久久久久 | 最近最新中文字幕 | 一区二区中文字幕 | 成人在线视频免费看 | 国产欧美一区二区三区久久手机版 | 日韩视频免费看 | 九九热这里只有精品在线观看 | 新疆少妇videos高潮 | 久一精品 | 夜夜爽99久久国产综合精品女不卡 | 黄网免费| 午夜一区二区三区视频 | 国产91精品久久久久久久网曝门 | 97视频精品| 国产日韩精品一区 | www.97zyz.com| 玖玖久久 | 91视频在线观看免费 | 欧洲亚洲精品久久久久 | 在线成人一区 | 精品国产伦一区二区三区观看说明 | 亚洲午夜精品视频 | 欧美性生活一区二区三区 | 亚洲天堂成人在线视频 | 99精品电影 | 一区二区影院 | 国产一区不卡 | 中文字幕日韩一区 | 国产精品一区在线 | 九九热在线免费视频 | 国产欧美在线一区二区 | 国产精品国产自产拍高清 | 91大神在线看 | 国产九九精品视频 | 日韩视频在线观看一区二区 |