Compartir a través de


Cómo: Exportar aserciones de directivas personalizadas

Las aserciones de directivas describen las funciones y requisitos de un extremo de servicio. Las aplicaciones de servicio pueden utilizar las aserciones de directivas personalizadas en metadatos del servicio para comunicarse el extremo, enlace o información de personalización de contrato a la aplicación cliente. Puede utilizar Windows Communication Foundation (WCF) para exportar las aserciones en expresiones de directivas agregadas a enlaces de WSDL en el extremo, operación o asuntos del mensaje, dependiendo de las funciones o requisitos que esté comunicando.

Las aserciones de directivas personalizadas se exportan implementando la interfaz System.ServiceModel.Description.IPolicyExportExtension en System.ServiceModel.Channels.BindingElement e insertando directamente el elemento de enlace en el enlace del extremo de servicio o registrando el elemento de enlace en su archivo de configuración de la aplicación. Su implementación de exportación de directivas debería agregar su aserción de directivas personalizada como una instancia System.Xml.XmlElement al System.ServiceModel.Description.PolicyAssertionCollection adecuado en System.ServiceModel.Description.PolicyConversionContext que se pasa al método ExportPolicy.

Además, debe comprobar la propiedad PolicyVersion de la clase WsdlExporter y exportar expresiones de directivas anidadas y atributos de marco de directivas en el espacio de nombres correcto basándose en la versión de directiva especificada.

Para importar las aserciones de directivas personalizadas, vea System.ServiceModel.Description.IPolicyImportExtension y Cómo: Importar aserciones de directivas personalizadas.

Para exportar aserciones de directivas personalizadas

  1. Implemente la interfaz System.ServiceModel.Description.IPolicyExportExtension en System.ServiceModel.Channels.BindingElement. El ejemplo de código siguiente muestra la implementación de una aserción de directiva personalizada en el nivel de enlace.

  2. Inserte el elemento de enlace en el enlace del extremo mediante programación o utilizando un archivo de configuración de la aplicación. Consulte los procedimientos siguientes.

Para insertar un elemento de enlace mediante un archivo de configuración de la aplicación

  1. Implemente System.ServiceModel.Configuration.BindingElementExtensionElement para su elemento de enlace de la aserción de directiva personalizada.

  2. Agregue la extensión del elemento de enlace al archivo de configuración utilizando el elemento <bindingElementExtensions>.

  3. Genere un enlace personalizado mediante System.ServiceModel.Channels.CustomBinding.

Para insertar un elemento de enlace mediante programación

  1. Cree un nuevo System.ServiceModel.Channels.BindingElement y agréguelo a System.ServiceModel.Channels.CustomBinding.

  2. Agregue el enlace personalizado del paso 1 a un nuevo extremo y agregue ese nuevo extremo de servicio a System.ServiceModel.ServiceHost llamando al método AddServiceEndpoint.

  3. Abra ServiceHost. El ejemplo de código siguiente muestra la creación de un enlace personalizado y la inserción mediante programación de elementos de enlace.

Consulte también

Tareas

Cómo: Importar aserciones de directivas personalizadas

Referencia

IPolicyImportExtension
IPolicyExportExtension