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

WCF異步操作具體定義與應(yīng)用

開(kāi)發(fā) 開(kāi)發(fā)工具
WCF異步操作的實(shí)現(xiàn)原理與相關(guān)定義我們將會(huì)在這篇文章中為大家詳細(xì)介紹。希望對(duì)于又需要的朋友們可以從中獲得一些幫助。

如果想要熟練的應(yīng)用WCF開(kāi)發(fā)工具,就需要在學(xué)習(xí)與實(shí)踐的過(guò)程中去掌握那些重要的應(yīng)用技巧。在這里我們就先為大家介紹一下有關(guān)WCF異步操作的相關(guān)應(yīng)用技巧,以方便大家在實(shí)際應(yīng)用中獲得些幫助。

實(shí)現(xiàn)WCF異步操作模式在編程上具有一些限制:異步服務(wù)操作是通過(guò)兩個(gè)配對(duì)的方法實(shí)現(xiàn)的,并且采用典型的異步操作命名方式:BeginXxx/EndXxx。兩個(gè)方法需要采用如下的簽名,指定了AsyncPattern屬性的OperationContractAttribute只需要應(yīng)用到BeginXxx方法上面。

  1. [OperationContract(AsyncPattern = true)]   
  2. IAsyncResult BeginDoWork(parameters, AsyncCallback 
    userCallback, object stateObject);   
  3. ReturnType EndDoWork(IAsyncResult asynResult); 

比如下面兩段代碼可以看作相同的操作在同步和異步下的不同表現(xiàn)。

  1. [OperationContract]   
  2. double Add(double x, double y);   
  3. [OperationContract(AsyncPattern = true)]   
  4. IAsyncResult BeginAdd(double x, double y, 
    AsyncCallback userCallback, object stateObject);   
  5. double EndAdd(IAsyncResult asynResult); 

理解了WCF異步操作的定義模式之后,我們來(lái)談?wù)刉CF異步操作實(shí)現(xiàn)的原理。WCF通過(guò)類型OperationDescription表示對(duì)服務(wù)操作的描述。如下面的代碼所示,OperationDescription具有3個(gè)重要的MemthodInfo類型的屬性成員:SyncMethod、BeginMethod和EndMethod,分別表示同步方法、異步開(kāi)始和結(jié)束方法。以上面的代碼為例,如果采用SyncMethod表示Add方法,而B(niǎo)eginMethod和EndMethod對(duì)應(yīng)于BeginAdd和EndAdd方法。

  1. public class OperationDescription   
  2. {   
  3. public MethodInfo SyncMethod { get; set; }   
  4. public MethodInfo BeginMethod { get; set; }   
  5. public MethodInfo EndMethod { get; set; }   
  6. //其他成員   

WCF通過(guò)OperationSelector選擇相應(yīng)的操作,通過(guò)OperationInvoker執(zhí)行被選擇操作對(duì)應(yīng)的方法。所有的OperationInvoker都實(shí)現(xiàn)了接口System.ServiceModel.Dispatcher.IOperationInvoker。下面是IOperationInvoker基本的定義。Invoke和InvokeBegin/InvokeEnd代表對(duì)操作同步和異步執(zhí)行,IsSynchronous表示當(dāng)前操作是否是異步的,如果操作的AsyncPattern為true則表明是異步操作。

  1. public interface IOperationInvoker   
  2. {   
  3. object[] AllocateInputs();   
  4. object Invoke(object instance, object[] inputs, 
    out object[] outputs);   
  5. IAsyncResult InvokeBegin(object instance, object[] inputs, 
    AsyncCallback callback, object state);   
  6. object InvokeEnd(object instance, out object[] outputs, 
    IAsyncResult result);   
  7. bool IsSynchronous { get; }   

在WCF中定義了兩個(gè)典型的OperationInvoker:SyncOperationInvoker與AsyncOperationInvoker,它們分別用于同步操作和異步操作的執(zhí)行。這兩個(gè)OperationINvoker均實(shí)現(xiàn)了IOperationInvoker接口,SyncOperationInvoker實(shí)現(xiàn)了Invoke方法,AsyncOperationInvoker實(shí)現(xiàn)了InvokeBegin和InvokeEnd

當(dāng)通過(guò)OperationSelector和InstanceProvider選出正確的方法和得到相應(yīng)的服務(wù)實(shí)例的時(shí)候,WCF根據(jù)操作的AsyncPattern選擇相應(yīng)的OperationInvoker。如果是同步的則自然選擇SyncOperationInvoker,執(zhí)行Invoke方法。Invoke方法會(huì)通過(guò)OperationDescription的SyncMethod屬性,得到同步操作方法的MethodInfo,采用反射的機(jī)制執(zhí)行該方法;對(duì)于WCF異步操作,則會(huì)調(diào)用AsyncOperationInvoker的InvokeBegin和InvokeEnd方法,InvokeBegin和InvokeEnd方法對(duì)應(yīng)的MethodInfo通過(guò)OperationDescription的BeginMethod和EndMethod屬性獲得。得到相應(yīng)的MethodInfo對(duì)象后,同樣通過(guò)反射調(diào)用服務(wù)實(shí)例。

【編輯推薦】

  1. WCF自定義集合類型應(yīng)用注意事項(xiàng)探討
  2. WCF會(huì)話服務(wù)基本應(yīng)用技巧分享
  3. WCF編碼規(guī)范相關(guān)知識(shí)詳解
  4. Silverlight調(diào)用WCF服務(wù)相關(guān)應(yīng)用細(xì)節(jié)解析
  5. WCF安全參數(shù)正確設(shè)置方式解讀
責(zé)任編輯:曹凱 來(lái)源: CSDN
相關(guān)推薦

2010-02-25 11:23:29

WCF返回自定義格式

2010-03-01 15:08:05

WCF單向操作

2009-12-21 16:04:45

WCF Dispose

2010-02-22 17:07:50

WCF綁定元素

2010-02-24 09:38:58

WCF應(yīng)用編碼

2010-02-25 15:25:19

WCF通道

2009-12-07 14:35:42

WCF異步調(diào)用

2010-02-22 13:28:05

WCF異步調(diào)用

2010-02-23 13:03:34

WCF序列化

2010-02-24 13:06:27

WCF使用Nhiber

2010-03-02 09:39:11

保護(hù)WCF服務(wù)

2010-03-02 16:15:59

WCF控制事務(wù)

2010-02-24 17:07:26

WCF序列化引擎

2012-04-20 10:05:16

WCF

2010-03-01 14:56:48

WCF服務(wù)引用

2009-12-08 10:21:17

WCF地址

2010-02-25 14:26:48

WCF特點(diǎn)

2010-03-01 17:28:25

WCF Stream對(duì)

2009-12-21 14:10:26

WCF異步調(diào)用

2010-02-22 17:58:06

WCF異步上傳
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 俺去俺来也www色官网cms | 97精品久久 | 日韩三 | 在线观看黄免费 | 日日操夜夜操天天操 | 日本一级淫片免费啪啪3 | 99在线资源 | 久久大 | 亚洲欧美bt | 国产亚洲欧美另类一区二区三区 | 国产精品一区在线观看你懂的 | 伊人春色在线观看 | 西西裸体做爰视频 | 国产日韩欧美一区二区 | 在线免费观看黄色 | 婷婷91| 亚洲成a| 天堂三级 | 国产亚洲网站 | av在线一区二区三区 | 国产一级在线观看 | 成人av免费 | 全部免费毛片在线播放网站 | 国产精品国产精品国产专区不蜜 | 国产精品国产三级国产aⅴ中文 | 日本国产一区二区 | av香蕉| 国产做a爱免费视频 | 亚洲性视频| 亚洲高清在线 | 99热在线免费 | 九九热精品视频在线观看 | 天天碰日日操 | 人人干人人玩 | 黄色亚洲网站 | 日韩国产免费观看 | 精品美女视频在线观看免费软件 | 乳色吐息在线观看 | 亚洲中午字幕 | 婷婷久久网 | 一级毛片成人免费看a |