Condividi tramite


Formattatori dei messaggi personalizzati

Il contenuto di un messaggio è spesso nel formato XML, che in genere non è un formato pratico per un'applicazione. Le applicazioni modificano gli oggetti, ottenendo e impostando le relative proprietà. Windows Communication Foundation (WCF) usa il contratto di dati per convertire un oggetto Message in un oggetto facilmente gestito da un'applicazione. Questi processi sono definiti serializzazione e deserializzazione. Questi stessi termini vengono usati per descrivere la serializzazione e la deserializzazione eseguita dal livello del trasporto verso e dal formato di trasmissione del messaggio, che sono processi non correlati.

È possibile usare un formattatore dei messaggi personalizzato se è necessario implementare una conversione specializzata tra messaggi e oggetti che non può essere eseguita mediante un contratto dati. Per questo scopo, modificare o estendere il comportamento di esecuzione di un'operazione del contratto specifica su un client o un servizio.

Formattatori dei messaggi personalizzati sul client

L'interfaccia IClientMessageFormatter definisce i metodi usati per controllare la conversione dei messaggi in oggetti e degli oggetti in messaggi per le applicazioni client.

È necessario implementare questa interfaccia. Eseguire innanzitutto l'override del metodo DeserializeReply per deserializzare un messaggio. Questo metodo viene chiamato dopo la ricezione di un messaggio in ingresso, ma prima che il messaggio venga inviato all'operazione client.

Eseguire quindi l'override del metodo SerializeRequest per serializzare un oggetto. Questo metodo viene chiamato prima di inviare un messaggio in uscita.

Per inserire il formattatore personalizzato nell'applicazione del servizio, assegnare l'oggetto IClientMessageFormatter alla proprietà Formatter usando un comportamento dell'operazione. Per informazioni sui comportamenti, vedere Configurazione ed estensione del runtime con i comportamenti.

Formattatori dei messaggi personalizzati sul servizio

L'interfaccia IDispatchMessageFormatter definisce i metodi che convertono un oggetto Message in parametri per un'operazione e da parametri in un oggetto Message in un'applicazione di servizio.

È necessario implementare questa interfaccia. Eseguire innanzitutto l'override del metodo DeserializeReply per deserializzare un messaggio. Questo metodo viene chiamato dopo la ricezione di un messaggio in ingresso, ma prima che il messaggio venga inviato all'operazione client.

Eseguire quindi l'override del metodo SerializeRequest per serializzare un oggetto. Questo metodo viene chiamato prima di inviare un messaggio in uscita.

Per inserire il formattatore personalizzato nell'applicazione del servizio, assegnare l'oggetto IDispatchMessageFormatter alla proprietà Formatter usando un comportamento dell'operazione. Per informazioni sui comportamenti, vedere Configurazione ed estensione del runtime con i comportamenti.

Vedi anche