WCF協(xié)定各種不同類型概念解讀
WCF開(kāi)發(fā)工具中有一些比較重要的協(xié)定,可以來(lái)幫助我們輕松的實(shí)現(xiàn)各種特定功能的實(shí)現(xiàn)。掌握這些協(xié)定對(duì)于初學(xué)者來(lái)說(shuō)是一個(gè)比較重要的步驟。服務(wù)操作是在服務(wù)的代碼中定義的過(guò)程,用于實(shí)現(xiàn)某種操作的功能。 此操作作為一個(gè) WCF 客戶端上的方法向客戶端公開(kāi)。 該方法可能返回一個(gè)值,并可能采用數(shù)量可選的參數(shù),或是不采用任何參數(shù)且不返回任何響應(yīng)。例如,一個(gè)實(shí)現(xiàn)簡(jiǎn)單的“Hello”的操作可以用作客戶端存在通知,并可以開(kāi)始一系列操作。#t#
服務(wù)協(xié)定
在WCF協(xié)定中,服務(wù)協(xié)定將多個(gè)相關(guān)的操作聯(lián)系在一起,組成單個(gè)功能單元。 WCF協(xié)定可以定義服務(wù)級(jí)設(shè)置,如服務(wù)的命名空間、對(duì)應(yīng)的回調(diào)協(xié)定以及其他此類設(shè)置。在大多數(shù)情況下,協(xié)定是通過(guò)用您所選的編程語(yǔ)言創(chuàng)建一個(gè)接口并將 ServiceContractAttribute 屬性應(yīng)用于該接口來(lái)定義的。通過(guò)實(shí)現(xiàn)該接口,可生成實(shí)際的服務(wù)代碼。
操作協(xié)定
操作WCF協(xié)定定義參數(shù)并返回操作的類型。 在創(chuàng)建定義服務(wù)協(xié)定的接口時(shí),可以通過(guò)將 OperationContractAttribute 屬性應(yīng)用于協(xié)定中包含的每個(gè)方法定義來(lái)表示一個(gè)操作協(xié)定??梢詫⒉僮鹘椴捎脝蝹€(gè)消息作為參數(shù)并返回單個(gè)消息,或者建模為采用一組類型作為參數(shù)并返回一個(gè)類型。在后一種情況下,系統(tǒng)將確定需要為該操作交換的消息的格式。
消息協(xié)定
消息協(xié)定描述消息的格式。 例如,它會(huì)聲明消息元素應(yīng)包含在消息頭中還是包含在消息正文中,應(yīng)該對(duì)消息的何種元素應(yīng)用何種級(jí)別的安全,等等。
錯(cuò)誤協(xié)定
可以將錯(cuò)誤協(xié)定與服務(wù)操作進(jìn)行關(guān)聯(lián),以指示可能返回到調(diào)用方的錯(cuò)誤。 一個(gè)操作可能具有零個(gè)或更多個(gè)與其相關(guān)聯(lián)的錯(cuò)誤。 這些錯(cuò)誤是在編程模型中建模為異常的 SOAP 錯(cuò)誤。
數(shù)據(jù)協(xié)定
服務(wù)使用的數(shù)據(jù)類型必須在元數(shù)據(jù)中進(jìn)行描述,以使其他各方可以與該服務(wù)進(jìn)行交互操作。 在WCF協(xié)定中,數(shù)據(jù)類型的說(shuō)明稱為數(shù)據(jù)協(xié)定,而這些類型可以在消息的任何部分使用(例如,作為參數(shù)或返回類型)。 如果服務(wù)僅使用簡(jiǎn)單類型,則無(wú)需顯式使用數(shù)據(jù)協(xié)定。
宿主
服務(wù)必須承載于某個(gè)進(jìn)程中。 “宿主”是控制服務(wù)的生存期的應(yīng)用程序。 服務(wù)可以是自承載的,也可以由現(xiàn)有的宿主進(jìn)程進(jìn)行管理。
自承載服務(wù)
自承載服務(wù)是在開(kāi)發(fā)人員創(chuàng)建的進(jìn)程應(yīng)用程序中運(yùn)行的服務(wù)。 開(kāi)發(fā)人員控制服務(wù)的生存期、設(shè)置服務(wù)的屬性、打開(kāi)服務(wù)(這會(huì)將服務(wù)設(shè)置為偵聽(tīng)模式)以及關(guān)閉服務(wù)。
宿主進(jìn)程
宿主進(jìn)程是專為承載服務(wù)而設(shè)計(jì)的應(yīng)用程序。 這些宿主進(jìn)程包括 Internet 信息服務(wù) (IIS)、Windows 激活服務(wù) (WAS) 和 Windows 服務(wù)。 在這些宿主方案中,由宿主控制服務(wù)的生存期。 例如,使用 IIS 可以設(shè)置包含服務(wù)程序集和配置文件的虛擬目錄。在收到消息時(shí),IIS 將啟動(dòng)服務(wù)并控制服務(wù)的生存期。
實(shí)例化
服務(wù)具有一個(gè)實(shí)例化模型。 有三種實(shí)例化模型:“單個(gè)”,在這種模型中,由單個(gè) CLR 對(duì)象為所有客戶端提供服務(wù);“每個(gè)調(diào)用”,在這種模型中,將創(chuàng)建一個(gè)新的 CLR 對(duì)象來(lái)處理每個(gè)客戶端調(diào)用;“每個(gè)會(huì)話”,在這種模型中,將創(chuàng)建一組 CLR 對(duì)象,并且為每個(gè)獨(dú)立的會(huì)話使用一個(gè)對(duì)象。 實(shí)例化模型的選擇取決于應(yīng)用程序要求和服務(wù)的預(yù)期使用模式。
以上就是對(duì)WCF協(xié)定的相關(guān)介紹。