<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      WCF體系架構(之一:Client與Server信息交互處理流程初略介紹)

        WCF在設計的時候,就封裝了對常用協議如Tcp\HTTP\MSMQ的處理機制。但WCF同時也允許

      開發者在WCF現有平臺上進行擴展,以解決實際問題。

        大部分情況下,通過WCF常用的協議,就已經能完成了大部分工作了。在WCF揭秘中,作者

      在介紹如何擴展WCF時,講了一些WCF是如何處理行為、信道、傳輸等方面的工作機制。本節從

      WCF行為作為切入點,談談個人對WCF體系的理解。

        在WCF框架設計時,為了簡化WCF普通的應用場景,也為了滿足一些特殊環境下的應用,

      WCF的設計者們將WCF進行分成設計。實現方式是將上層 與底層應用區分開。

          在一些特殊環境下對底層做一些擴展就行了。WCF將一般場景使用的的上層應用類型都放在

      System.ServiceModel中。而對底層的擴展主要針對的類型放在System.ServiceModel

      .Dispatcher與System.ServiceModel.Channels

      這兩個命名空間中。本節介紹的消息在Client與Server中大致處理流程

      WCF客戶端與服務端交互過程是怎樣的呢。?首先看下圖:


      過程說明:
      1、Client發起服務調用,客戶端操作組件對調用參數進行檢查,并序列化到System.ServiceModel.Channels.Message對象中。

      2、客戶端運行時組件通過IMessageInspectors對消息進行檢查并將請求信息通過Channel發往Server

      3、Service Endpoint的調度器(Dispatcher)從信道層中獲取請求消息交給信道調度器

      4、信道調度器然后將消息交給終結點調度器。

      5、根據消息地址,操作調度器決定消息與服務契約定義的操作匹配

      6、調用操作器將參數傳遞給實現該接口的操作并進行調用。

      7、如果調用有返回,則響應消息被傳遞給信道調用器,由信道調用器將響應信息放入信道中,

      回復給客戶端。

      在這個過程中,還有一些具體的問題,如在WCF服務端,調度器(Dispatcher)如何工作?

      下面分服務端、客戶端分別介紹

      服務端:調度器(Dispatcher)。                                  

        調度器負責從信道中獲取數據,并傳遞給終結點相應的方法以進行處理。在這個過程中涉及到的調度器(Dispatcher)有三種:信道調度器(Channel Dispather)、終結點調度器(Endpoint Dispatcher)、操作調度器(Opeartion Dispatcher)。

      過程說明:

      1、信道調度器從信道中獲取數據,并根據讀取到的消息的地址決定將消息發送給哪個終結點。

      2、終結點調度器根據消息的Action,決定消息所對應的接口操作。然后將消息發送給操作調度器。

      3、操作調度器接收到消息以后,對它進行反序列化以獲取接口需要的參數,并將參數傳遞給方法。

      處理完成以后,還將對響應消息進行序列化。

      調度器(Dispatcher)由三種類型進行定義:ChannelDispatcher、DispatcherRuntime、DispatcherOperation。

      ChannelDispatcher定義了服務層的信道調度器。

      DispatcherRuntime代表終結點調度器層的組件。

      DispatcherOperation代表操作相關的調度器組件。

      客戶端:                                                             

      在WCF的客戶端,客戶端運行時組件主要由兩類定義:1、System.ServiceModel.Dispatcher.ClientOperation、

      2、System.ServiceModel.Dispatcher.ClientRuntime。

      1、ClientOperation類                                                                         
      它有兩個重要的屬性來附加相關的行為:
      1、參數檢查器:ParameterInspectors。在ClientOperation中的定義:

      public SynchronizedCollection<IParameterInspector> ParameterInspectors { get; }
      public interface IParameterInspector
      {
          // Methods
          void AfterCall(string operationName, object[] outputs, object returnValue,     object correlationState);
          object BeforeCall(string operationName, object[] inputs);
      }
      

      2、附加定制行為的屬性:Formatter:負責將發送的數據序列化到消息里,也就是System.ServiceModel.Channles.Message對象的Body中。在ClientOperation中的定義:

      public IClientMessageFormatter Formatter { get; set; }
      public interface IClientMessageFormatter
      {
          // Methods
          object DeserializeReply(Message message, object[] parameters);
          Message SerializeRequest(MessageVersion messageVersion, object[] parameters);
      }

       

      2、ClientRuntime類也有兩個屬性來附加終結點的行為:                            

      1、OperationSelector:它通過Client調用的哪個方法決定進行哪個方法的調用。在ClientRuntime中的定義:

      public IClientOperationSelector OperationSelector { get; set; }
      public interface IClientOperationSelector
      {
          // Methods
          string SelectOperation(MethodBase method, object[] parameters);
      
          // Properties
          bool AreParametersRequiredForSelection { get; }
      }
      

      2、MessageInspector:它用于檢查并有選擇性的修改發送的請求消息和接收到的響應消息。在ClientRuntime中的定義:

      public SynchronizedCollection<IClientMessageInspector> MessageInspectors { get; }
      
      public interface IClientMessageInspector
      {
          // Methods
          void AfterReceiveReply(ref Message reply, object correlationState);
          object BeforeSendRequest(ref Message request, IClientChannel channel);
      }
      
      posted @ 2012-03-29 14:49  tyb1222  閱讀(3700)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 97国产揄拍国产精品人妻| 国产性色的免费视频网站| japanese边做边乳喷| 国产精品天干天干综合网| 亚洲国产欧美一区二区好看电影| 亚洲国产女性内射第一区| 国产欧美va欧美va在线| 亚洲乱码中文字幕小综合 | 国产不卡一区二区在线| 亚洲欧美人成人综合在线播放| 亚洲国产成人久久精品APP| 野外做受三级视频| 人妻伦理在线一二三区| 亚洲欧洲一区二区综合精品| 精品欧洲av无码一区二区| 久久综合婷婷成人网站| 亚洲午夜无码久久久久蜜臀av| 中国孕妇变态孕交xxxx| 成人网站av亚洲国产| 欧美国产成人精品二区芒果视频| 亚洲高潮喷水无码AV电影| 精品国产一区二区三区国产区| 国产亚洲精品成人aa片新蒲金| 亚洲国产午夜精品福利| 国产av一区二区午夜福利| 亚洲国产精品一区二区第一页| 亚洲av久久精品狠狠爱av| 偷拍视频一区二区三区四区| 久久国产成人午夜av影院| 一区二区三区四区五区自拍 | 风间由美性色一区二区三区| 午夜视频免费试看| 青青草无码免费一二三区| 亚洲粉嫩av一区二区黑人| 日韩国产亚洲欧美成人图片| 国产熟睡乱子伦视频在线播放| 国产精品视频一区二区三区不卡| 四虎精品国产精品亚洲精| 99久久精品费精品国产一区二| 波多野结衣网站| 国产精品午夜福利在线观看|