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

WCF異步操作具體定義與應用

開發 開發工具
WCF異步操作的實現原理與相關定義我們將會在這篇文章中為大家詳細介紹。希望對于又需要的朋友們可以從中獲得一些幫助。

如果想要熟練的應用WCF開發工具,就需要在學習與實踐的過程中去掌握那些重要的應用技巧。在這里我們就先為大家介紹一下有關WCF異步操作的相關應用技巧,以方便大家在實際應用中獲得些幫助。

實現WCF異步操作模式在編程上具有一些限制:異步服務操作是通過兩個配對的方法實現的,并且采用典型的異步操作命名方式:BeginXxx/EndXxx。兩個方法需要采用如下的簽名,指定了AsyncPattern屬性的OperationContractAttribute只需要應用到BeginXxx方法上面。

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

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

  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異步操作的定義模式之后,我們來談談WCF異步操作實現的原理。WCF通過類型OperationDescription表示對服務操作的描述。如下面的代碼所示,OperationDescription具有3個重要的MemthodInfo類型的屬性成員:SyncMethod、BeginMethod和EndMethod,分別表示同步方法、異步開始和結束方法。以上面的代碼為例,如果采用SyncMethod表示Add方法,而BeginMethod和EndMethod對應于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通過OperationSelector選擇相應的操作,通過OperationInvoker執行被選擇操作對應的方法。所有的OperationInvoker都實現了接口System.ServiceModel.Dispatcher.IOperationInvoker。下面是IOperationInvoker基本的定義。Invoke和InvokeBegin/InvokeEnd代表對操作同步和異步執行,IsSynchronous表示當前操作是否是異步的,如果操作的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中定義了兩個典型的OperationInvoker:SyncOperationInvoker與AsyncOperationInvoker,它們分別用于同步操作和異步操作的執行。這兩個OperationINvoker均實現了IOperationInvoker接口,SyncOperationInvoker實現了Invoke方法,AsyncOperationInvoker實現了InvokeBegin和InvokeEnd

當通過OperationSelector和InstanceProvider選出正確的方法和得到相應的服務實例的時候,WCF根據操作的AsyncPattern選擇相應的OperationInvoker。如果是同步的則自然選擇SyncOperationInvoker,執行Invoke方法。Invoke方法會通過OperationDescription的SyncMethod屬性,得到同步操作方法的MethodInfo,采用反射的機制執行該方法;對于WCF異步操作,則會調用AsyncOperationInvoker的InvokeBegin和InvokeEnd方法,InvokeBegin和InvokeEnd方法對應的MethodInfo通過OperationDescription的BeginMethod和EndMethod屬性獲得。得到相應的MethodInfo對象后,同樣通過反射調用服務實例。

【編輯推薦】

  1. WCF自定義集合類型應用注意事項探討
  2. WCF會話服務基本應用技巧分享
  3. WCF編碼規范相關知識詳解
  4. Silverlight調用WCF服務相關應用細節解析
  5. WCF安全參數正確設置方式解讀
責任編輯:曹凱 來源: CSDN
相關推薦

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應用編碼

2010-02-25 15:25:19

WCF通道

2009-12-07 14:35:42

WCF異步調用

2010-02-22 13:28:05

WCF異步調用

2010-02-23 13:03:34

WCF序列化

2010-02-24 13:06:27

WCF使用Nhiber

2010-03-02 09:39:11

保護WCF服務

2010-03-02 16:15:59

WCF控制事務

2010-02-24 17:07:26

WCF序列化引擎

2012-04-20 10:05:16

WCF

2010-03-01 14:56:48

WCF服務引用

2009-12-08 10:21:17

WCF地址

2010-02-25 14:26:48

WCF特點

2010-03-01 17:28:25

WCF Stream對

2010-02-22 17:58:06

WCF異步上傳

2009-11-09 10:50:30

WCF異步調用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91免费高清 | 日韩欧美在线视频一区 | 黄色一级电影免费观看 | 岛国av一区二区 | 日韩视频精品在线 | 亚洲精品一区二区三区四区高清 | 午夜影院在线观看 | 国产精品久久久久久久久久久久午夜片 | 色婷婷综合久久久中字幕精品久久 | 综合色在线 | 国产综合网站 | 久久精品国产99国产精品 | 久久精品国产一区老色匹 | 日韩免费在线观看视频 | 天天干 夜夜操 | 蜜桃一区| 成人精品一区二区 | 高清久久 | 国产成人午夜电影网 | 中文字幕一区二区三区乱码在线 | 国产一区二区在线视频 | 午夜免费视频观看 | 欧美日韩在线精品 | 亚洲精品一区二区冲田杏梨 | 久久9久 | 国产成人99久久亚洲综合精品 | 粉嫩av久久一区二区三区 | 91色视频在线观看 | 久久久www成人免费无遮挡大片 | 午夜精品久久 | 亚洲性人人天天夜夜摸 | av毛片| 中文字幕二区 | 亚洲欧美日本在线 | 国产一二三区精品视频 | 日日摸夜夜添夜夜添精品视频 | 日韩a在线| 草草视频在线播放 | 日韩中文字幕在线免费 | 亚洲二区精品 | 中文字幕不卡在线88 |