共用方式為


匯出 WCF 延伸模組的自定義元數據

在 Windows Communication Foundation (WCF)中,元數據匯出是描述服務端點並將它們投影成平行、標準化表示法的程式,用戶端可用來瞭解如何使用服務。 自訂元數據是由系統提供的元數據匯出工具無法匯出的 XML 元素所組成。 一般而言,這包括自定義 WSDL 元素,適用於使用者定義的行為和绑定元素,以及關於绑定和合約的能力和需求的政策聲明。

本節描述匯出自定義 WSDL 或原則判斷提示,且不會專注於導出程式本身。 如需如何使用匯出和匯入元數據的類型,不論元數據是自定義還是系統建構,請參閱 匯出和匯入元數據

概觀

發佈元數據時使用System.ServiceModel.Description.ServiceMetadataBehavior,系統會檢查System.ServiceModel.Description.ServiceDescription,並為 WCF 支援的所有合約和系結產生 XSD 和 WSDL,包括政策斷言,這些合約和系結是透過系統提供的屬性和系結來支援的。 不過,自定義行為屬性或綁定項需要支援,才能正確匯出它們。

本節說明:

  1. 如何實作和使用 System.ServiceModel.Description.IWsdlExportExtension 介面,這會在發佈 WSDL 之前,先向您公開 WSDL 產生數據。

  2. 如何實作和使用 System.ServiceModel.Description.IPolicyExportExtension 介面,在導出 WSDL 數據中的原則判斷提示之前,先向您公開原則數據。

如需匯入自定義 WSDL 和原則判斷提示的詳細資訊,請參閱 匯入 WCF 延伸模組的自定義元數據

匯出自定義 WSDL 元素

在作業行為、合約行為、端點行為或綁定元素上實作 IWsdlExportExtension(分別為 IOperationBehaviorIContractBehaviorIEndpointBehaviorSystem.ServiceModel.Channels.BindingElement),並將行為或綁定元素插入您嘗試導出的服務描述中。 (如需插入行為的詳細資訊,請參閱 使用行為設定和擴充運行時間)。 IWsdlExportExtension會針對每個端點呼叫 ,而且如果合約尚未匯出,則每個端點都會先匯出合約。 視您的需求而定,您可以參與其中一個導出程式:

在所匯出的 ExportContract 實例中,IWsdlExportExtension 方法會在所有 System.ServiceModel.Description.ContractDescription 實作上被呼叫。 會在所有 ExportEndpoint 實作上使用被導出的 IWsdlExportExtension 實例呼叫 System.ServiceModel.Description.ServiceEndpoint 方法。

如需詳細資訊,請參閱 如何:匯出自定義 WSDL 和範例 自定義 WSDL 發行集

匯出自定義原則斷言

IPolicyExportExtension上實作BindingElement,並將綁定元素新增至綁定,以將綁定支援和合約功能的自訂策略斷言寫入 WSDL。 匯出實作的綁定項時,會呼叫一次IPolicyExportExtension,並將PolicyConversionContext傳遞至ExportPolicy方法。 您可以使用PolicyConversionContext 實例上的方法,將內容新增至附加於訊息、操作或端點的 WSDL 系結的政策聲明。

若想了解更多資訊,請參閱 如何:匯出自定義原則斷言

另請參閱