擴充性簡介

Windows Communication Foundation (WCF) 應用程式模型是設計用來解決任何分散式應用程式的大部分通訊需求問題。 但是一定有預設應用程式模型和系統提供的實作所不支援的情況。 WCF 擴充性模型的目的是為了能讓您修改每個層級的系統行為 (甚至到取代整個應用程式模型的地步),以支援自訂的情境。 本主題會概述各種擴充區域,並指向每個擴充區域的詳細資訊。

要擴充的區域

您可以擴充:

  • 應用程式執行階段, 這會擴充應用程式的訊息分派和處理功能。 這個區域也包含擴充安全性系統、中繼資料系統、序列化系統,以及連接應用程式與基礎通道系統的繫結和繫結項目。

  • 通道和通道執行階段, 這會擴充在訊息層級上運作的系統,提供通訊協定、傳輸和編碼支援。

  • 主機執行階段, 這會擴充裝載應用程式定義域與通道和應用程式執行階段之間的關係。

擴充應用程式執行階段

在 WCF 應用程式中,用於對應通道的訊息和用於應用程式本身的訊息之間有不同之處。 通道訊息支援某些與通道相關的功能,例如建立安全對話或建立可靠的工作階段。 這些訊息不適用於應用程式執行階段,在使用應用程式層之前,就會先處理訊息。

應用程式訊息包含您或您的客戶所建立,並且用於用戶端或服務作業的資料。 視您的需要而定,這些訊息適用於形式為訊息或物件的應用程式層級擴充系統。

所有訊息都會通過通道系統,但是只有應用程式訊息會從通道系統傳遞至應用程式。 若要建立新的通道層級功能,您必須擴充通道系統。 若要建立新的應用程式層級功能,您必須擴充服務或用戶端執行階段 (分別是發送器和通道處理站)。 如需擴充應用程式執行階段的詳細資訊,請參閱擴充 ServiceHost 和服務模型層

擴充安全性

若要建置自訂安全性機制,例如權杖和認證,您必須擴充安全性系統。 如需詳細資訊,請參閱擴充安全性

擴充中繼資料

若要以不同於預設的方式公開中繼資料,您必須擴充中繼資料系統。 如需詳細資訊,請參閱擴充中繼資料系統

擴充序列化

若要建置自訂編碼器、提供資料代理或其他涉及自訂傳輸資料的工作,您必須擴充序列化系統。 如需詳細資訊,請參閱擴充編碼器和序列化程式

擴充繫結

若要將傳輸或通訊協定通道與應用程式層產生關聯,您必須擴充繫結系統。 如需詳細資訊,請參閱擴充繫結

擴充通道系統

若要建立支援自訂傳輸或通訊協定功能的通道,請參閱擴充通道層

擴充服務裝載系統

若要修改服務範圍的應用程式模型,您必須擴充 System.ServiceModel.ServiceHostBase 類別。 如需詳細資訊,請參閱擴充 ServiceHost 和服務模型層

若要修改裝載應用程式定義域與服務主機之間的關係,您必須擴充 System.ServiceModel.Activation.ServiceHostFactory 類別。 如需詳細資訊,請參閱使用 ServiceHostFactory 擴充裝載

另請參閱