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

ASP.NET的AsyncState參數

開發 后端
本文介紹ASP.NET的AsyncState參數,以及介紹默認的Model Binder無法得知如何從一個上下文環境中得到一個AsyncCallback對象。

ASP.NET的AsyncState參數

這是因為默認的Model Binder無法得知如何從一個上下文環境中得到一個AsyncCallback對象。這一點倒非常簡單,我們只需要構造一個AsyncCallbackModelBinder,而它的BindModel方法僅僅是將AsyncMvcHandler.BeginProcessRequest方法中保存的AsyncCallback對象取出并返回:

  1. public sealed class AsyncCallbackModelBinder : IModelBinder  
  2. {  
  3.     public object BindModel(  
  4.         ControllerContext controllerContext,  
  5.         ModelBindingContext bindingContext)  
  6.     {  
  7.         return controllerContext.Controller.GetAsyncCallback();  
  8.     }  


其使用方式,便是在應用程序啟動時將其注冊為AsyncCallback類型的默認Binder:

 

  1. protected void Application_Start()  
  2. {  
  3.     RegisterRoutes(RouteTable.Routes);  
  4.     ModelBinders.Binders[typeof(AsyncCallback)] = new AsyncCallbackModelBinder();  


對于AsyncState參數您也可以使用類似的做法,不過這似乎有些不妥,因為object類型實在過于寬泛,并不能明確代指AsyncState參數。事實上,即使您不為asyncState設置binder也沒有太大問題,因為對于一個異步ASP.NET請求來說,其AsyncState永遠是null。如果您一定要指定一個binder,我建議您在每個Action方法的asyncState參數上標記如下的Attribute,它和AsyncStateModelBinder也已經被一并建入項目中了:

 

  1. [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = falseInherited = false)]  
  2. public sealed class AsyncStateAttribute : CustomModelBinderAttribute  
  3. {  
  4.     private static AsyncStateModelBinder s_modelBinder = new AsyncStateModelBinder();  
  5.  
  6.     public override IModelBinder GetBinder()  
  7.     {  
  8.         return s_modelBinder;  
  9.     }  


使用方式如下:

 

  1. [AsyncAction]  
  2. public ActionResult AsyncAction(AsyncCallback cb, [AsyncState]object state) { ... } 


其實,基于Controller的擴展方法GetAsyncCallback和GetAsyncState均為公有方法,您也可以讓Action方法不接受這兩個參數而直接從Controller中獲取——當然這種做法降低了可測試性,不值得提倡。以上介紹ASP.NET的AsyncState參數

【編輯推薦】

  1. 介紹ASP.NET 2.0虛擬主機
  2. 淺談ASP.NET應用程序
  3. 優化ASP.NET 2.0 Profile Provider
  4. 淺談ASP.NET管道優化
  5. 介紹ASP.NET Routing引擎
責任編輯:佚名 來源: IT168
相關推薦

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-07-27 15:48:43

2009-07-29 11:19:03

JavaScriptASP.NET

2009-07-29 16:33:28

GreeterLogiASP.NET

2009-07-27 10:35:33

TypeConvertASP.NET

2009-07-29 14:52:12

IScriptContASP.NET

2009-07-29 17:11:25

ASP.NET ISA

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設計

2009-07-29 16:08:07

ASP和ASP.NET

2009-07-22 18:03:00

ASP.NET ASP

2009-07-29 17:29:46

ASP與ASP.NET

2009-12-30 17:51:31

Silverlight

2009-07-28 14:40:15

XML數據ASP.NET

2009-07-27 13:52:36

Panel控件ASP.NET

2009-07-22 17:23:03

XmlDataSourASP.NET 2.0

2009-07-29 10:19:48

Session StaASP.NET

2009-07-27 15:34:11

MembershipASP.NET
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品福利视频一区二区三区 | 一级aaaaaa毛片免费同男同女 | 中文字幕av在线 | 最新毛片网站 | 中文字幕av网 | 亚洲视频一区二区三区 | 天天干天天干 | 日韩久久中文字幕 | 九七午夜剧场福利写真 | 99福利在线观看 | 99国产欧美| 亚洲精品视频久久 | 亚洲成人免费视频在线 | 亚洲欧美自拍偷拍视频 | 99久久婷婷 | 黄片毛片在线观看 | 啪啪免费网站 | 91久久国产综合久久91精品网站 | 麻豆av一区二区三区久久 | 婷婷午夜天 | 成av在线| 国产清纯白嫩初高生视频在线观看 | 福利一区在线观看 | av一区二区三区四区 | 国产精品美女久久久久aⅴ国产馆 | 一区二区三区四区在线视频 | 亚洲成人自拍 | 精品国产青草久久久久96 | 偷拍亚洲色图 | 99热精品在线 | 天天操夜夜操 | 久久99久久99| 天天宗合网| 一区二区日韩 | 日韩欧美国产精品一区 | 成人网址在线观看 | 久久躁日日躁aaaaxxxx | а√中文在线8 | 成人av电影免费在线观看 | 国产免费福利在线 | 91久久国产精品 |