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




















