Recuperación de metadatos

La recuperación de metadatos es el proceso de solicitar y recuperar los metadatos desde un extremo de metadatos, como un extremo de metadatos de WS-MetadataExchange (MEX) o de HTTP/GET.

Recuperación de metadatos de la línea de comandos mediante Svcutil.exe

Puede recuperar metadatos de servicio mediante WS-MetadataExchange o solicitudes HTTP/GET al usar la herramienta de utilidad de metadatos de ServiceModel (Svcutil.exe) y pasar el modificador /target:metadata, así como una dirección. Svcutil.exe descarga los metadatos en la dirección especificada y guarda el archivo en el disco. Svcutil.exe utiliza una instancia System.ServiceModel.Description.MetadataExchangeClient internamente y carga la configuración de punto de conexión de IMetadataExchange desde la configuración cuyo nombre coincide con el esquema de la dirección pasada a Svcutil.exe como entrada.

Recuperación de metadatos mediante programación con MetadataExchangeClient

Windows Communication Foundation (WCF) puede recuperar metadatos de servicio mediante protocolos estandarizados, como WS-MetadataExchange y solicitudes HTTP/GET. Ambos protocolos están admitidos por el tipo MetadataExchangeClient. Recupera metadatos de servicio utilizando el tipo System.ServiceModel.Description.MetadataExchangeClient al proporcionar una dirección para el extremo de metadatos y un enlace opcional. El enlace utilizado por una instancia de System.ServiceModel.Description.MetadataExchangeClient puede ser uno de los enlaces predeterminados de la clase estática MetadataExchangeBindings, un enlace proporcionado por el usuario o un enlace cargado desde una configuración de extremo para el contrato IMetadataExchange. System.ServiceModel.Description.MetadataExchangeClient también puede resolver las referencias a la dirección URL HTTP a los metadatos utilizando el tipo HttpWebRequest.

De forma predeterminada, se ata una instancia System.ServiceModel.Description.MetadataExchangeClient a una instancia ChannelFactory única. Puede cambiar o reemplazar la instancia System.ServiceModel.ChannelFactory utilizada por System.ServiceModel.Description.MetadataExchangeClient invalidando el método virtual GetChannelFactory. De igual forma, puede cambiar o reemplazar la instancia de HttpWebRequest utilizada por System.ServiceModel.Description.MetadataExchangeClient para realizar solicitudes HTTP/GET mediante la invalidación del método virtual MetadataExchangeClient.GetWebRequest.

En esta sección

Procedimiento para usar Svcutil.exe para descargar documentos de metadatos
Demuestra cómo usar Svcutil.exe para descargar los documentos de metadatos.

Procedimiento para usar MetadataResolver para obtener dinámicamente metadatos de enlace
Muestra cómo usar System.ServiceModel.Description.MetadataResolver a fin de obtener de forma dinámica metadatos de enlace en tiempo de ejecución.

Procedimiento para usar MetadataExchangeClient para recuperar metadatos
Muestra cómo utilizar la clase System.ServiceModel.Description.MetadataExchangeClient para descargar los archivos de metadatos en un objeto System.ServiceModel.Description.MetadataSet que contiene objetos System.ServiceModel.Description.MetadataSection para escribir en archivos o para otros usos.

Consulte también