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


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

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

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

Метаданные службы можно получить с помощью WS-MetadataExchange или HTTP/GET-запросов с помощью средства служебной программы метаданных ServiceModel (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, переопределив виртуальный метод MetadataExchangeClient.GetWebRequest.

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

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

Практическое руководство. Использование MetadataResolver для динамического получения метаданных привязки
Демонстрирует, как использовать метаданные System.ServiceModel.Description.MetadataResolver привязки динамически во время выполнения.

Практическое руководство. Использование MetadataExchangeClient для получения метаданных
Использование класса System.ServiceModel.Description.MetadataExchangeClient для загрузки файлов метаданных в объект System.ServiceModel.Description.MetadataSet, содержащий объекты System.ServiceModel.Description.MetadataSection, для записи в файлы или для других целей.

См. также