Поделиться через


Извлечение метаданных

Извлечение метаданных — это процесс запроса и извлечения метаданных из конечной точки метаданных, например конечной точки метаданных WS-MetadataExchange (MEX) или конечной точки метаданных HTTP/GET.

Извлечение метаданных с помощью программы командной строки Svcutil.exe

Метаданные службы можно извлечь с помощью протокола WS-MetadataExchange и запросов HTTP/GET, воспользовавшись для этого средством Служебное средство ServiceModel Metadata Utility Tool (Svcutil.exe) и передав ему параметр /target:metadata и адрес. Средство Svcutil.exe загружает метаданные, расположенные по указанному адресу, и сохраняет файл на диске. Средство Svcutil.exe использует внутри себя экземпляр System.ServiceModel.Description.MetadataExchangeClient и загружает из конфигурации конфигурацию конечной точки 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 может выполнять разрешение URL-адресов ссылок HTTP на метаданные с помощью типа HttpWebRequest.

По умолчанию экземпляр System.ServiceModel.Description.MetadataExchangeClient связан с одним экземпляром ChannelFactory. Можно изменить или заменить экземпляр System.ServiceModel.ChannelFactory, используемый экземпляром System.ServiceModel.Description.MetadataExchangeClient, переопределив виртуальный метод GetChannelFactory. Аналогично можно изменить или заменить экземпляр HttpWebRequest, используемый экземпляром System.ServiceModel.Description.MetadataExchangeClient для создания запросов HTTP/GET, переопределив виртуальный метод System.ServiceModel.Description.MetadataExchangeClient.GetWebRequest(System.Uri,System.String,System.String).

В этом разделе

См. также

Справочник

MetadataExchangeClient