Share via


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 los objetos, obtienen y establecen sus propiedades. Windows Communication Foundation (WCF) utiliza el Contrato de datos para convertir un objeto Message en un objeto fácilmente controlado por 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 más información sobre comportamientos, consulte Configuración y extensión del tiempo 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 más información sobre comportamientos, consulte Configuración y extensión del tiempo de ejecución con comportamientos.

Consulte también

Referencia

IClientMessageFormatter
IDispatchMessageFormatter

Conceptos

Configuración y extensión del tiempo de ejecución con comportamientos