WCF綁定元素具體應(yīng)用知識介紹
WCF開發(fā)工具的出現(xiàn),對于開發(fā)人員來說具有非常大的作用。在這里我們將會為大家詳細(xì)介紹一下有關(guān)WCF綁定元素的相關(guān)概念。那么對于初學(xué)者來說,大家可以通過這篇文章想、充分掌握這些應(yīng)用技巧。#t#
從結(jié)構(gòu)的角度講,一個綁定對象有一系列綁定元素組成,每個綁定元素負(fù)責(zé)創(chuàng)建相應(yīng)的信道。所以綁定元素幾何的構(gòu)成以及它們之間的先后順序,決定了最終生成的信道棧中的信道組成已經(jīng)它們位于棧中的先后順序。WCF之所以在設(shè)計的時候?qū)⒔壎ê徒壎ㄔ胤蛛x開發(fā),是基于靈活性、可擴(kuò)展性考慮的。 #t#
在介紹信道和信道棧的時候我們說過,我們不可能、也不應(yīng)該創(chuàng)建一個***的信道能夠提供消息交換中的所有的功能,所以我們讓一個信道只承載某個單一的功能,比如傳輸信道專注于網(wǎng)絡(luò)傳輸,消息編碼信到專注于消息的編碼,WCF還定義了一一系列的信道,他們分別關(guān)注與安全、可靠傳輸和事務(wù)流轉(zhuǎn)等等。這種信道組合的設(shè)計方式使得我們可以根據(jù)具體的需求來定制我們將要創(chuàng)建的信道棧,讓它只具有我們必須的功能,而去除不必要的功能。
同理,我們可以根據(jù)具體實際需求,將必要的WCF綁定元素進(jìn)行有序的組合,從而創(chuàng)建最能適合具體場景的綁定對象。由于信道可以分為必須的傳輸信道、消息編碼信道和可選的基于某種WS-*協(xié)議實現(xiàn)的協(xié)議信道,與之相對地,我們的綁定元素可以分為傳輸綁定元素、消息編碼綁定元素和協(xié)議綁定元素。
由于信道的實際創(chuàng)建者是信道管理器(信道工廠和信道監(jiān)聽器),所以綁定元素只需要實現(xiàn)對信道管理器的創(chuàng)建,而最終實現(xiàn)對具體信道的創(chuàng)建。所以綁定元素的最根本的功能就是實現(xiàn)對信道監(jiān)聽器和信道工廠的創(chuàng)建。這可以從所有WCF綁定元素的基類, System.ServiceModel.Channels.BindingElement的定義上看出來:
- public abstract class BindingElement
- {
- // Methods
- protected BindingElement();
- protected BindingElement(BindingElement elementToBeCloned);
- public virtual IChannelFactory<TChannel> BuildChannelFactory
<TChannel>(BindingContext context);- public virtual IChannelListener<TChannel> BuildChannelListener
<TChannel>(BindingContext context) where TChannel : class, IChannel;- public virtual bool CanBuildChannelFactory<TChannel>
(BindingContext context);- public virtual bool CanBuildChannelListener<TChannel>
(BindingContext context) where TChannel : class, IChannel;- public abstract BindingElement Clone();
- public abstract T GetProperty<T>(BindingContext context)
where T : class;- }
BindingElement的核心方法成員有兩個:BuildChannelListener<TChannel>和BuildChannelFactory<TChannel〉,用于創(chuàng)建相應(yīng)的信道監(jiān)聽器和信道工廠。兩個Build方法的參數(shù)都是BindingContext,關(guān)于BindingContext,我將在本章后續(xù)的部分中介紹。而CanBuildChannelFactory<TChannel>和CanBuildChannelListener<TChannel〉 則屬性兩個測試性質(zhì)的方法,用于檢驗相應(yīng)的相應(yīng)的信道監(jiān)聽器和信道功能是否可以被創(chuàng)建。
以上就是對WCF綁定元素的相關(guān)介紹。