Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En Windows Communication Foundation (WCF), la exportación de metadatos es el proceso de describir los puntos de conexión de servicio y proyectarlos en una representación estandarizada y paralela que los clientes pueden usar para comprender cómo usar el servicio. Los metadatos personalizados constan de elementos XML que los exportadores de metadatos proporcionados por el sistema no pueden exportar. Normalmente, esto incluye elementos WSDL personalizados para comportamientos definidos por el usuario y elementos de enlace y aserciones de directiva sobre las funcionalidades y los requisitos de enlaces y contratos.
En esta sección se describe la exportación de aserciones de directiva o WSDL personalizadas y no se centra en el propio proceso de exportación. Para obtener más información sobre cómo usar los tipos que exportan e importan metadatos independientemente de si los metadatos son personalizados o construidos por el sistema, consulte Exportación e importación de metadatos.
Información general
Cuando los metadatos se publican mediante System.ServiceModel.Description.ServiceMetadataBehavior, el System.ServiceModel.Description.ServiceDescription se examina y XSD y WSDL, incluidas las aserciones de directiva, se generan para todos los contratos y vinculaciones que WCF puede admitir mediante atributos y vinculaciones proporcionados por el sistema. Sin embargo, los atributos de comportamiento personalizados o los elementos de enlace requieren compatibilidad para poder exportarlos correctamente.
En esta sección se describe:
Cómo implementar y usar la interfaz System.ServiceModel.Description.IWsdlExportExtension, que pone a disposición los datos de generación de WSDL antes de publicar el WSDL.
Cómo implementar y utilizar la interfaz System.ServiceModel.Description.IPolicyExportExtension, que le expone los datos de la directiva antes de exportar las aserciones de directiva a datos del WSDL.
Para obtener más información sobre cómo importar aserciones personalizadas de WSDL y directivas, vea Importación de metadatos personalizados para una extensión WCF.
Exportar elementos WSDL personalizados
Implemente en IWsdlExportExtension un comportamiento de operación, comportamiento de contrato, comportamiento de punto de conexión o elemento de enlace (IOperationBehavior, IContractBehavior, IEndpointBehavioro System.ServiceModel.Channels.BindingElement respectivamente) e inserte los comportamientos o elementos de enlace en la descripción del servicio que está intentando exportar. (Para obtener más información sobre cómo insertar comportamientos, vea Configuración y extensión del runtime con comportamientos). Se llama a IWsdlExportExtension para cada punto de conexión y cada punto de conexión exporta primero el contrato si aún no se ha exportado. Puede participar en cualquier proceso de exportación, en función de sus necesidades:
Usa el WsdlContractConversionContext para modificar los metadatos exportados en el método ExportContract.
Utiliza el WsdlEndpointConversionContext para modificar los metadatos exportados para el punto de conexión en el método ExportEndpoint.
Se llama al método ExportContract en todas las implementaciones IWsdlExportExtension de la instancia System.ServiceModel.Description.ContractDescription que se está exportando. El método ExportEndpoint es llamado en todas las implementaciones IWsdlExportExtension con la instancia System.ServiceModel.Description.ServiceEndpoint que se está exportando.
Para obtener más información, vea Cómo: Exportar WSDL Personalizado y el ejemplo Publicación de WSDL Personalizado.
Exportación de aserciones de directivas personalizadas
Implemente IPolicyExportExtension en un BindingElement y agregue el elemento de enlace al enlace para escribir las aserciones de directivas personalizadas sobre compatibilidad de enlaces y funciones de contrato en WSDL. IPolicyExportExtension se llama una vez al exportar el elemento de enlace implementado en un enlace y pasa el PolicyConversionContext al método ExportPolicy. Puede utilizar los métodos en la instancia PolicyConversionContext para agregar a las aserciones de directiva adjuntas al enlace WSDL en el mensaje, operación o sujetos del extremo.
Para obtener más información, vea Cómo: Exportar aserciones de directivas personalizadas.