Partager via


Formateurs de messages personnalisés

Le contenu d'un message est souvent au format XML, ce qui n'est pas généralement un format pratique pour une application. Les applications manipulent des objets, obtiennent et définissent leurs propriétés. Windows Communication Foundation (WCF) utilise le contrat de données pour convertir un objet Message en un objet facile à traiter par une application. Ces processus sont appelés sérialisation et désérialisation. Notez que ces mêmes termes sont utilisés pour décrire la sérialisation et la désérialisation effectuées par la couche transport en direction et à partir du format de transmission de message, qui est un processus non apparenté.

Vous pouvez utiliser un formateur de messages personnalisés si vous devez implémenter une conversion spécialisée entre des messages et des objets que vous ne pouvez pas accomplir au moyen d'un contrat de données. Pour ce faire, modifiez ou étendez le comportement d'exécution d'une opération de contrat spécifique sur un client ou un service.

Formateurs de messages personnalisés sur le client

L'interface IClientMessageFormatter définit les méthodes utilisées pour contrôler la conversion de messages en objets et d'objets en messages pour les applications clientes.

Vous devez implémenter cette interface. Commencez par substituer la méthode DeserializeReply pour désérialiser un message. Cette méthode est appelée après la réception d'un message entrant, mais avant sa distribution à l'opération cliente.

Puis, substituez la méthode SerializeRequest pour sérialiser un objet. Cette méthode est appelée avant l'envoi d'un message sortant.

Pour insérer le formateur personnalisé dans l'application de service, assignez l'objet IClientMessageFormatter à la propriété Formatter à l'aide d'un comportement d'opération. Pour obtenir des informations sur les comportements, consultez Configuration et extension du runtime avec des comportements.

Formateurs de messages personnalisés sur le service

L'interface IDispatchMessageFormatter définit des méthodes qui convertissent un objet Message en paramètres pour une opération et de paramètres en objet Message dans une application de service.

Vous devez implémenter cette interface. Commencez par substituer la méthode DeserializeReply pour désérialiser un message. Cette méthode est appelée après la réception d'un message entrant, mais avant sa distribution à l'opération cliente.

Puis, substituez la méthode SerializeRequest pour sérialiser un objet. Cette méthode est appelée avant l'envoi d'un message sortant.

Pour insérer le formateur personnalisé dans l'application de service, assignez l'objet IDispatchMessageFormatter à la propriété Formatter à l'aide d'un comportement d'opération. Pour obtenir des informations sur les comportements, consultez Configuration et extension du runtime avec des comportements.

Voir aussi