Condividi tramite


Formattatori di messaggi personalizzati

Il contenuto di un messaggio è spesso sotto forma di XML, che in genere non è un formato pratico per un'applicazione. Le applicazioni modificano gli oggetti, recuperando e impostando le relative proprietà. Windows Communication Foundation (WCF) usa il contratto dati per convertire un Message oggetto in un oggetto facilmente gestito da un'applicazione. Questi processi sono denominati serializzazione e deserializzazione. Si noti che questi stessi termini vengono usati per descrivere la serializzazione e la deserializzazione eseguite dal livello di trasporto verso e dal formato di trasmissione dei messaggi, che è un processo non correlato.

È possibile usare un formattatore di messaggi personalizzato se è necessario implementare una conversione specializzata tra messaggi e oggetti che non è possibile eseguire tramite un contratto dati. A tale scopo, modificare o estendere il comportamento di esecuzione di un'operazione di contratto specifica in un client o in un servizio.

Formattatori di messaggi personalizzati nel client

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

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

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

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

Formattatori di messaggi personalizzati nel servizio

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

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

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

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

Vedere anche