Compartir a través de


Exportación de metadatos personalizados para una extensión WCF

En Windows Communication Foundation (WCF), la exportación de los metadatos es el proceso de describir los extremos de servicio y proyectarlos en una representación paralela y estandarizada que pueden usar los clientes para entender cómo utilizar el servicio. Los metadatos personalizados están compuestos de elementos XML que los exportadores de metadatos proporcionados por el sistema no pueden exportar. Normalmente, esto incluye elementos WSDL personalizados para los elementos de enlace y los comportamientos definidos por el usuario y las aserciones de directiva sobre las funciones y requisitos de los enlaces y contratos.

Esta sección describe la exportación de WSDL o aserciones de directivas personalizados y no se centra en el propio proceso de exportación. Para obtener más información sobre cómo utilizar los tipos que exportan e importan metadatos sin tener en cuenta si los metadatos son personalizados o construidos por el sistema, vea Exportación e importación de metadatos.

Información general

Cuando los metadatos se publican utilizando System.ServiceModel.Description.ServiceMetadataBehavior, se examina System.ServiceModel.Description.ServiceDescription y se generan XSD y WSDL (incluyendo las aserciones de directivas) para todos los contratos y enlaces que WCF puede admitir mediante enlaces y atributos proporcionados por el sistema. Sin embargo, los atributos de comportamiento o los elementos de enlace personalizados requieren la compatibilidad antes de que se puedan exportar correctamente.

En esta sección se describe:

  1. Cómo implementar y utilizar la interfaz System.ServiceModel.Description.IWsdlExportExtension, que expone los datos de generación de WSDL a usted antes de publicar el WSDL.

  2. 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 de directivas y WSDL personalizadas, vea Importación de metadatos personalizados para una extensión de WCF.

Exportación de elementos WSDL personalizados

Implemente IWsdlExportExtension en un comportamiento de la operación, comportamiento del contrato, comportamiento del extremo 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 tiempo de ejecución con comportamientos. Se llama a IWsdlExportExtension para cada extremo y cada extremo exporta primero el contrato si aún no se ha exportado. Puede participar en cualquier proceso de exportación, dependiendo de sus necesidades:

Se llama al método ExportContract en todas las implementaciones de IWsdlExportExtension dentro de la instancia de System.ServiceModel.Description.ContractDescription que se está exportando. Se llama al método ExportEndpoint 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 el WSDL personalizado y el ejemplo Publicación de WSDL personalizada.

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. Se llama a IPolicyExportExtension una vez al exportar el elemento de enlace implementado en un enlace y pasa 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.

Vea también

Tareas

Cómo: Exportar el WSDL personalizado
Cómo: Exportar aserciones de directivas personalizadas

Conceptos

Importación de metadatos personalizados para una extensión de WCF