首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WCF 服務描述體系深度解析:ServiceDescription、Endpoint、Contract 與 Behavior 四層架構

     編輯:關於.NET

WCF 服務需寄宿於進程中,本質是建立 ServiceHost 物件。初始化過程中最關鍵步驟是建立服務描述,本文全面剖析其四層架構。

一、ServiceDescription 與服務行為

ServiceDescription 為服務運行時描述,核心屬性:

  • Behaviors:服務行為集合(KeyedByTypeCollection<IServiceBehavior>)
  • ConfigurationName:配置名稱,預設為型別全名
  • Name/Namespace:服務名稱/命名空間,映射 WSDL targetNamespace 與 <wsdl:service> name
  • ServiceType:CLR 服務型別

透過 ServiceBehaviorAttribute 設定 Name/Namespace/ConfigurationName。服務行為實作 IServiceBehavior(AddBindingParameters/ApplyDispatchBehavior/Validate),ServiceBehaviorAttribute 本身即為預定義服務行為。其他預定義行為(AspNetCompatibilityRequirementsAttribute、ServiceThrottlingBehavior 等)可透過配置套用。

二、ServiceEndpoint 與端點行為

ServiceEndpoint 描述端點 ABC(Address/Binding/Contract),含 ListenUri(物理位址)與 Address(邏輯位址)。Behaviors 集合掛載端點行為(實作 IEndpointBehavior),含 ApplyClientBehavior/ApplyDispatchBehavior 等,作用域限於該端點,雙向適用。

三、ContractDescription 與契約行為

ContractDescription 描述服務契約,Behaviors 掛載契約行為(實作 IContractBehavior),作用於實現該契約的所有服務端與使用該契約的所有客戶端代理。Operations 集合含所有操作描述。

四、OperationDescription 與操作行為

OperationDescription 描述操作契約,Behaviors 掛載操作行為(實作 IOperationBehavior),作用域僅限該操作(客戶端 ClientOperation、服務端 DispatchOperation)。

四層描述體系構成 WCF 運行時元資料骨架,行為機制提供強大擴展點。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved