天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

WCF客戶端運行時架構體系詳解[上篇]

  客戶端調用WCF服務的方式不外乎有兩種:其一、通過代碼生成工具(比如SvcUtil.exe)導入服務的元數據生成服務代理相關的類型;其二、通過ChannelFactory<TChannel>創建服務代理對象。對于前者,生成的服務代理是一個繼承自ClientBase<TChannel>的類型。對于這樣一個服務代理對象,其內部本質上還是借助于ChannelFactory<TChannel>創建真正用于進行服務調用的代理對象。對于WCF客戶端應用編程接口來說,ChannelFactory<TChannel>是一個核心類型。

目錄
一、創建ChannelFactory<TChannel>
二、客戶端架構體系
      信道初始化
      消息檢驗
      操作和操作選擇
三、 客戶端操作(ClientOperation)

  一、創建ChannelFactory<TChannel>

  服務調用的本質實際上是針對服務的某個終結點的調用,說得具體地應該是:客戶端通過相匹配的終結點調用服務的終結點。終結點具有ABC(Address, Binding, Contract)三要素,這里所說的“相匹配”的終結點具體體現在這三要素的匹配上。而服務調用最終體現在消息交換上,接下來我們從消息交換的角度來談談匹配終結點在服務調用的必要性。

  • 地址(Address):地址作為調用服務的唯一標識并代表了服務所在的位置,客戶端終結點必須具有一個正確的地址才能確保請求的消息被發送到正確的目的地;
  • 綁定(Binding):作為信道層的締造者,綁定最終創建了用于實現消息處理和傳輸的信道棧。客戶端必須具有一個與服務端一致的信道棧,才能確保消息的一致性處理。具體來說,客戶端必須具有與服務端一致的傳輸信道,才能確保消息能夠被正常地傳輸到服務端。如果服務端具有采用一個基于HTTP協議的傳輸信道進行請求的監聽,客戶端就不能使用一個基于TCP的傳輸信道。服務端和客戶端必須具有一個相同的消息編碼信道才能確保被一方編碼的消息能夠被另一個解碼。如果服務端采用基于文本的消息編碼信道,客戶端采用的消息編碼信道就不能是基于二進制的。此外,幾乎所有的WS-*規范在WCF的實現都是通過自定義信道來控制消息交換來完成的,所以這也要求客戶端和服務端必須具有對等的信道設置;
  • 契約(Contract):契約最終決定了基于某個操作的服務調用應該采用的消息交換模式,以及參與消息交換的消息本身所具有的結構。為了讓客戶端和服務端就此達成一致,必要要求雙方采用等效的契約。

  用于創建服務代理對象的ChannelFactory<TChannel>對象本身就是基于某個具體的客戶端終結點創建的。你可以通過編程的方式(構造函數)指定終結點的三要素,也可以將此三要素定義在配置文件中,通過終結點配置名稱(構造函數的endpointConfigurationName參數)來創建ChannelFactory<TChannel>。下面的代碼片斷給出了相關定義。

public abstract class ChannelFactory : CommunicationObject, IChannelFactory, ICommunicationObject, IDisposable
{
  public ServiceEndpoint Endpoint { get; }
}
public class ChannelFactory<TChannel> : ChannelFactory, IChannelFactory<TChannel>, IChannelFactory, ICommunicationObject
{
  //其他成員
  public ChannelFactory(string endpointConfigurationName);
  protected ChannelFactory(Type channelType);
  public ChannelFactory(Binding binding, EndpointAddress remoteAddress);
  public ChannelFactory(Binding binding, string remoteAddress);
  public ChannelFactory(string endpointConfigurationName, EndpointAddress remoteAddress);
}

NET技術WCF客戶端運行時架構體系詳解[上篇],轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 日本少妇无码精品12P | 成人国产在线观看 | 亚洲 欧美 国产 视频二区 | 达达兔欧美午夜国产亚洲 | 大屁股国产白浆一二区 | 久久青草热热在线精品 | 人妻美妇疯狂迎合 | jlzz中国jizz日本老师水多 | 99re久久热在线播放8 | 久久久久综合网 | 月夜直播视频免费观看 | 91久久偷偷看嫩草影院无费 | 饥渴的40岁熟妇完整版在线 | 亚洲理论片在线中文字幕 | 成人18视频在线观看 | 孕妇bbwbbwbbwbbw超清 | 国产亚洲精品久久久久久白晶晶 | 日本久久精品毛片一区随边看 | 欧美亚洲另类热图 | 一级黄色香蕉视频 | bl被教练啪到哭H玉势 | 最近中文字幕免费高清MV视频 | 国产精品玖玖玖影院 | 亚洲精品天堂在线观看 | 2021国产精品视频一区 | 爽爽窝窝午夜精品一区二区 | 成年AV动漫 | 色多多污污在线观看网站 | 国产成人精品三级在线 | 免费观看激烈日板子 | 伊人久久综在合线影院 | 免费视频不卡 | 久久黄视频 | 国产精品成人A蜜柚在线观看 | a毛片基地免费全部视频 | 嫩B人妻精品一区二区三区 内射一区二区精品视频在线观看 | 51精品少妇人妻AV一区二区 | 欧美人妇无码精品久久 | 暖暖直播免费观看韩国 | 草莓在线观看 | 大香伊人久久 |