Partilhar via


Mensagem personalizada Formatters

O conteúdo de uma mensagem geralmente está na forma de XML, que geralmente não é um formato conveniente para um aplicativo. Os aplicativos manipulam objetos, obtendo e definindo suas propriedades. O Windows Communication Foundation (WCF) usa o Contrato de Dados para converter um Message objeto em um objeto facilmente manipulado por um aplicativo. Esses processos são chamados de serialização e desserialização. Observe que esses mesmos termos são usados para descrever a serialização e a desserialização feitas pela camada de transporte de e para o formato de fio de mensagem, que é um processo não relacionado.

Você pode usar um formatador de mensagens personalizado se precisar implementar uma conversão especializada entre mensagens e objetos que não pode ser realizada por meio de um Contrato de Dados. Faça isso modificando ou estendendo o comportamento de execução de uma operação de contrato específica em um cliente ou serviço.

Mensagem personalizada para assuntos no cliente

A IClientMessageFormatter interface define métodos que são usados para controlar a conversão de mensagens em objetos e objetos em mensagens para aplicativos cliente.

Você deve implementar essa interface. Primeiro, substitua o DeserializeReply método para desserializar uma mensagem. Esse método é chamado depois que uma mensagem de entrada é recebida, mas antes de ser despachada para a operação do cliente.

Em seguida, substitua o SerializeRequest método para serializar um objeto. Este método é chamado antes de enviar uma mensagem de saída.

Para inserir o formatador personalizado no aplicativo de serviço, atribua o IClientMessageFormatter objeto à Formatter propriedade usando um comportamento de operação. Para obter informações sobre comportamentos, consulte Configurando e estendendo o tempo de execução com comportamentos.

Mensagem personalizada para assuntos no serviço

A IDispatchMessageFormatter interface define métodos que convertem um Message objeto em parâmetros para uma operação e de parâmetros em um Message objeto em um aplicativo de serviço.

Você deve implementar essa interface. Primeiro, substitua o DeserializeReply método para desserializar uma mensagem. Esse método é chamado depois que uma mensagem de entrada é recebida, mas antes de ser despachada para a operação do cliente.

Em seguida, substitua o SerializeRequest método para serializar um objeto. Este método é chamado antes de enviar uma mensagem de saída.

Para inserir o formatador personalizado no aplicativo de serviço, atribua o IDispatchMessageFormatter objeto à Formatter propriedade usando um comportamento de operação. Para obter informações sobre comportamentos, consulte Configurando e estendendo o tempo de execução com comportamentos.

Consulte também