Compartir a través de


Formateadores de mensajes personalizados

El contenido de un mensaje tiene, a menudo, forma de XML, que normalmente no es un formato conveniente para una aplicación. Las aplicaciones manipulan objetos, obteniendo y estableciendo sus propiedades. En la infraestructura Windows Communication Foundation (WCF), se usa el Contrato de datos para convertir un objeto Message en un objeto que pueda controlarse fácilmente en una aplicación. Estos procesos se denominan serialización y deserialización. Tenga en cuenta que estas mismas condiciones se utilizan para describir la serialización y deserialización realizada por el nivel de transporte al formato de conexión del mensaje y desde este, que es un proceso no relacionado.

Puede utilizar un formateador de mensaje personalizado si necesita implementar una conversión especializada entre los mensajes y objetos que no puede lograr por medio de un Contrato de datos. Haga esto modificando o extendiendo el comportamiento de ejecución de una operación del contrato específica en un cliente o un servicio.

Formateadores de mensaje personalizados en el cliente

La interfaz IClientMessageFormatter Define métodos que se utilizan para controlar la conversión de mensajes en objetos y de objetos en mensajes para aplicaciones cliente.

Usted tan solo debe implementar la interfaz. Primero, invalide el método DeserializeReply para deserializar un mensaje. Se llama a este método una vez recibido un mensaje entrante, pero antes de enviarse a la operación del cliente.

A continuación, invalide el método SerializeRequest para serializar un objeto. Se llama a este método antes de enviar un mensaje saliente.

Para insertar el formateador personalizado en la aplicación de servicio, asigne el objeto IClientMessageFormatter a la propiedad Formatter utilizando un comportamiento de operación. Para obtener información sobre los comportamientos, consulte Configuración y extensión del entorno de ejecución con comportamientos.

Formateadores de mensajes personalizados en el Servicio

La interfaz IDispatchMessageFormatter define métodos que convierten un objeto Message en los parámetros para una operación y desde los parámetros en un objeto Message en una aplicación de servicio.

Usted tan solo debe implementar la interfaz. Primero, invalide el método DeserializeReply para deserializar un mensaje. Se llama a este método una vez recibido un mensaje entrante, pero antes de enviarse a la operación del cliente.

A continuación, invalide el método SerializeRequest para serializar un objeto. Se llama a este método antes de enviar un mensaje saliente.

Para insertar el formateador personalizado en la aplicación de servicio, asigne el objeto IDispatchMessageFormatter a la propiedad Formatter utilizando un comportamiento de operación. Para obtener información sobre los comportamientos, consulte Configuración y extensión del tiempo de ejecución mediante comportamientos.

Consulte también