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

ASP.NET的AsyncState參數(shù)

開發(fā) 后端
本文介紹ASP.NET的AsyncState參數(shù),以及介紹默認(rèn)的Model Binder無法得知如何從一個(gè)上下文環(huán)境中得到一個(gè)AsyncCallback對(duì)象。

ASP.NET的AsyncState參數(shù)

這是因?yàn)槟J(rèn)的Model Binder無法得知如何從一個(gè)上下文環(huán)境中得到一個(gè)AsyncCallback對(duì)象。這一點(diǎn)倒非常簡(jiǎn)單,我們只需要構(gòu)造一個(gè)AsyncCallbackModelBinder,而它的BindModel方法僅僅是將AsyncMvcHandler.BeginProcessRequest方法中保存的AsyncCallback對(duì)象取出并返回:

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


其使用方式,便是在應(yīng)用程序啟動(dòng)時(shí)將其注冊(cè)為AsyncCallback類型的默認(rèn)Binder:

 

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


對(duì)于AsyncState參數(shù)您也可以使用類似的做法,不過這似乎有些不妥,因?yàn)閛bject類型實(shí)在過于寬泛,并不能明確代指AsyncState參數(shù)。事實(shí)上,即使您不為asyncState設(shè)置binder也沒有太大問題,因?yàn)閷?duì)于一個(gè)異步ASP.NET請(qǐng)求來說,其AsyncState永遠(yuǎn)是null。如果您一定要指定一個(gè)binder,我建議您在每個(gè)Action方法的asyncState參數(shù)上標(biāo)記如下的Attribute,它和AsyncStateModelBinder也已經(jīng)被一并建入項(xiàng)目中了:

 

  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) { ... } 


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

【編輯推薦】

  1. 介紹ASP.NET 2.0虛擬主機(jī)
  2. 淺談ASP.NET應(yīng)用程序
  3. 優(yōu)化ASP.NET 2.0 Profile Provider
  4. 淺談ASP.NET管道優(yōu)化
  5. 介紹ASP.NET Routing引擎
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

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組件設(shè)計(jì)

2009-07-29 16:08:07

ASP和ASP.NET

2009-07-29 17:29:46

ASP與ASP.NET

2009-07-22 18:03:00

ASP.NET ASP

2009-12-30 17:51:31

Silverlight

2011-09-22 10:58:56

ASP.NET

2009-07-28 14:40:15

XML數(shù)據(jù)ASP.NET

2009-07-27 13:52:36

Panel控件ASP.NET

2009-07-28 13:26:34

Render方法ASP.NET

2009-07-22 17:23:03

XmlDataSourASP.NET 2.0
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 欧美a级成人淫片免费看 | 污免费网站 | 99久久精品一区二区毛片吞精 | 成人av免费| 草草视频在线观看 | 羞羞视频在线观免费观看 | 99精品国产一区二区青青牛奶 | cao视频 | 中文字幕成人在线 | 91免费看片 | 欧美成人a∨高清免费观看 91伊人 | 精品一区久久 | 成人黄色电影在线播放 | 国产欧美一区二区三区日本久久久 | 成人激情视频 | 精品91久久 | 欧美在线视频二区 | 色一级片| aa级毛片毛片免费观看久 | 国产精品乱码一二三区的特点 | 午夜在线精品偷拍 | 国产精品激情小视频 | 欧美成人激情 | 精品久久久久一区二区国产 | 婷婷激情综合 | av影音| 女女百合av大片一区二区三区九县 | 欧美成人h版在线观看 | 免费午夜视频 | 国产一二区免费视频 | 成人福利影院 | 国产欧美精品一区 | 韩国精品一区二区三区 | 久久久久国产精品 | 干干干操操操 | 久久国产欧美日韩精品 | 91青娱乐在线 | 午夜免费视频 | 国产一区二区三区视频 | 国产精品高潮呻吟久久久久 | 国产欧美久久精品 |