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 solicitudes de WS-MetadataExchange o HTTP/GET utilizando la herramienta Herramienta de utilidad de metadatos de ServiceModel (Svcutil.exe) y pasando el modificador /target:metadata
y 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 extremo 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 HttpWebRequest utilizada por System.ServiceModel.Description.MetadataExchangeClient para realizar solicitudes HTTP/GET invalidando el método virtual System.ServiceModel.Description.MetadataExchangeClient.GetWebRequest(System.Uri,System.String,System.String).
En esta sección
- Cómo: Utilizar Svcutil.exe para descargar los documentos de metadatos
Demuestra cómo usar Svcutil.exe para descargar los documentos de metadatos.
- Cómo: Utilizar MetadataResolver para obtener dinámicamente metadatos de enlace
Muestra cómo utilizar System.ServiceModel.Description.MetadataResolver para obtener dinámicamente metadatos de enlace en el tiempo de ejecución.
- Cómo: Utilizar 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.