分享方式:


擷取中繼資料

中繼資料擷取程序會要求和擷取中繼資料端點內的中繼資料,這些端點包括像是 WS-MetadataExchange (MEX) 中繼資料端點或 HTTP/GET 中繼資料端點。

使用 Svcutil.exe 來從命令列擷取中繼資料

您可以使用 WS-MetadataExchange 或 HTTP/GET 要求來擷取服務中繼資料,方法是使用 ServiceModel 中繼資料公用程式工具 (Svcutil.exe),並傳遞 /target:metadata 參數和一個位址。 Svcutil.exe 會在指定的位址下載中繼資料,並將檔案儲存到磁碟中。 Svcutil.exe 會在內部使用 System.ServiceModel.Description.MetadataExchangeClient 執行個體 (Instance),而且會從 IMetadataExchange 端點組態 (其名稱與傳遞至 Svcutil.exe 做為輸入的位址配置相同) 載入。

使用 MetadataExchangeClient 來以程式設計方式擷取中繼資料

Windows Communication Foundation (WCF) 可以使用 WS-MetadataExchange 和 HTTP/GET 要求等標準化通訊協定來擷取服務中繼資料。 這兩種通訊協定都由 MetadataExchangeClient 型別所支援。 您可以藉由提供中繼資料端點的位址及選擇性繫結,來擷取使用 System.ServiceModel.Description.MetadataExchangeClient 型別的服務中繼資料。 System.ServiceModel.Description.MetadataExchangeClient 執行個體使用的繫結可以是以下預設繫結之一:MetadataExchangeBindings 靜態類別、使用者提供的繫結,或是從 IMetadataExchange 合約的端點組態載入的繫結。 System.ServiceModel.Description.MetadataExchangeClient 也可以使用 HttpWebRequest 型別將 HTTP URL 參照解析為中繼資料。

根據預設,System.ServiceModel.Description.MetadataExchangeClient 執行個體與單一的 ChannelFactory 執行個體有密切的關係。 您可以透過覆寫 System.ServiceModel.ChannelFactory 虛擬方法,以變更或取代 System.ServiceModel.Description.MetadataExchangeClient 所使用的 GetChannelFactory 執行個體。 同樣地,您可以覆寫 HttpWebRequest 虛擬方法,以變更或取代由 System.ServiceModel.Description.MetadataExchangeClient 使用的 MetadataExchangeClient.GetWebRequest 執行個體。

本節內容

如何:使用 Svcutil.exe 來下載中繼資料文件
判斷如何使用 Svcutil.exe 來下載中繼資料文件。

如何:使用 MetadataResolver 來動態取得繫結中繼資料
示範如何使用 System.ServiceModel.Description.MetadataResolver 在執行階段動態取得繫結中繼資料。

如何:使用 MetadataExchangeClient 來擷取中繼資料
示範如何使用 System.ServiceModel.Description.MetadataExchangeClient 類別將中繼資料檔案下載到包含 System.ServiceModel.Description.MetadataSet 物件的 System.ServiceModel.Description.MetadataSection 物件,以供寫入至檔案或其他用途。

另請參閱