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

WCF編碼機(jī)制幾種不同方式介紹

開發(fā) 開發(fā)工具
我們定義了三種不同的WCF編碼機(jī)制,其中包括Text、Binary和MTOM。我們將會(huì)在這里針對這一內(nèi)容做一個(gè)詳細(xì)的介紹。

我們今天會(huì)通過這篇文章介紹的內(nèi)容繼續(xù)為大家講解一些有關(guān)WCF中的重要內(nèi)容。主要就是針對WCF編碼機(jī)制的相關(guān)內(nèi)容進(jìn)行一個(gè)詳細(xì)的闡述,希望能給大家?guī)硪恍椭岣呔幊棠芰Α?t#

在客戶端,以方法調(diào)用形式體現(xiàn)的服務(wù)訪問通過ClientMessageFormatter生成請求消息。該請求消息最終通過綁定對象從服務(wù)模型層轉(zhuǎn)到信道層。我們說綁定是綁定元素的有序組合,對于所有類型的綁定來說,有兩個(gè)綁定類型是必不可少的:MessageEncodingBindingElement和TransportBindingElement。而消息的編碼由這兩個(gè)綁定元素共同完成。

3種WCF編碼機(jī)制方式:Text、Binary和MTOM;對應(yīng)3種不同的XmlDictionaryWriter/XmlDictionaryReader:XmlUTF8TextWriter/ XmlUTF8TextReader、XmlBinaryWriter/XmlBinaryReader和XmlMtomWriter/XmlMtomReader;3種XmlDictionaryWriter/XmlDictionaryReader又對應(yīng)著3種MessageEncoder:TextMessageEncoder、BinaryMessagEncoder和MtomMessageEncoder;這3種不同的MessageEncoder又具有它們各自的MessageEncoderFactory:TextMessageEncoderFactory、BinaryMessagEncoderFactory和MtomMessageEncoderFactory。最終這3種MessageEncoderFactory被3種相應(yīng)的MessageEncodingBindingElement用于進(jìn)行具體的編碼。MessageEncodingBindingElement通過CreateMessageEncoderFactory得到相應(yīng)的MessageEncoderFactory。

  1. public abstract class MessageEncodingBindingElement : BindingElement  
  2. {   
  3. //其他成員   
  4. public abstract MessageEncoderFactory CreateMessageEncoderFactory();  
  5.  public override T GetProperty<T>(BindingContext context) 
  6. where T: class; public abstract MessageVersion MessageVersion   
  7. {   
  8. get;   
  9. set;   
  10. }   


對應(yīng)著3種不同的MessageEncoderFactory,WCF定義了3種不同的MessageEncodingBindingElement,它們分別是:TextMessageEncodingBindingElement、BinaryMessageEncodingBindingElement和MtomMessageEncodingBindingElement。

在介紹綁定的時(shí)候,我們說BindingElement創(chuàng)建相應(yīng)的ChannelFactory/ChannelListener,而ChannelFactory/ChannelListener最終創(chuàng)建相應(yīng)的Channel進(jìn)行消息的處理。這種說法是不準(zhǔn)確的,并不是所有的BindingElement都會(huì)創(chuàng)建Channel,實(shí)際上沒有用于專門編碼的Channel,具體的編碼工作是TransportChannel完成的。

當(dāng)通過綁定對象創(chuàng)建信道棧的時(shí)候,MessageEncodingBindingElement的BuildChannelFactory/BuildChannelListener方法首先被調(diào)用,MessageEncodingBindingElement會(huì)創(chuàng)建相應(yīng)的MessageEncoderFactory對象,將其置于當(dāng)前的BindingContext中。然后TransportBindingElement的BuildChannelFactory/BuildChannelListener方法被調(diào)用,并創(chuàng)建TransportChannelFactory/TransportChannelListener對象,TransportChannelListener和TransportChannelFactory創(chuàng)建TransportChannel用于請求監(jiān)聽和消息發(fā)送,與此同時(shí)TransportChannel會(huì)將MessageEncoderFactory從BindingContext獲取下來用于WCF編碼機(jī)制的解碼和編碼。

責(zé)任編輯:曹凱 來源: CSDN
相關(guān)推薦

2010-03-01 15:21:57

WCF死鎖

2010-02-23 14:24:50

WCF狀態(tài)保存

2010-02-23 09:58:21

WCF客戶端驗(yàn)證

2010-07-16 13:41:08

SQL Serverl

2009-07-06 18:23:32

JSP文件下載

2010-02-04 10:33:40

C++異常傳遞

2009-11-09 17:55:13

WCF緩存

2009-12-22 15:55:10

WCF事務(wù)

2009-12-22 15:14:33

WCF調(diào)用

2010-02-22 14:18:34

WCF服務(wù)驗(yàn)證

2020-04-24 16:09:57

UbuntuLinux內(nèi)核

2020-04-20 14:30:54

UbuntuLinux內(nèi)核

2010-02-04 15:41:10

C++內(nèi)存管理

2010-03-02 16:09:53

WCF框架

2010-02-04 10:13:35

C++獲得系統(tǒng)時(shí)間

2010-02-23 13:46:37

WCF數(shù)據(jù)契約

2010-02-22 14:09:08

WCF Dispose

2010-03-01 14:08:53

WCF編碼器

2019-12-09 10:30:42

Windows 10帳戶Windows

2010-02-05 10:30:02

C++操作符重載
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 欧美日韩国产传媒 | 99久久精品免费看国产四区 | 天天躁日日躁狠狠躁2018小说 | 国产日韩欧美 | 一级在线视频 | av黄色在线观看 | 日本黄色片免费在线观看 | 日韩一区二区三区精品 | 999热视频| 99re在线视频 | 国产一区二区在线视频 | 毛片电影| 亚洲中午字幕 | 亚洲精品日韩精品 | 中文字幕高清免费日韩视频在线 | 天天久久 | 超碰人人插 | 翔田千里一区二区 | 久久九九网站 | 成人免费高清 | 国产精品av久久久久久久久久 | 亚洲精品福利在线 | 看特级黄色片 | 日韩最新网站 | 亚洲一区中文字幕 | 污书屋| 91视频网 | 日韩精品一区二区三区四区视频 | 国产亚洲精品久久久久动 | 正在播放一区二区 | 久久久国产一区 | 成人黄色av网址 | 久久久精品一区二区三区四季av | 久久久久久久综合 | 午夜视频大全 | 国产成人亚洲精品自产在线 | 国产美女视频黄a视频免费 国产精品福利视频 | 中文字幕国产在线 | 国产极品车模吞精高潮呻吟 | 欧美精品一区二区三区在线 | 99福利在线观看 |