por Thiago Nishio
4. fevereiro 2011 19:03
Fala pessoal!
Dando continuidade ao tema do post anterior (XML Web Services com ASP.NET: Criando uma classe Proxy manualmente), explicarei como gerar arquivos XML que representam as mensagens SOAP trocadas entre a aplicação web e o XML Web service. SOAP (Simple Object Access Protocol) é um protocolo para a troca de mensagens estruturadas comumente utilizada em XML Web services.
Primeiramente, incluímos a classe TraceExtension no projeto. Esta classe está definida no arquivo TraceExtension.cs (8,42 kb) (Clique para baixar). Depois é necessário gerar a classe proxy manualmente e editá-la. Inserimos o namespace "SoapMessageUtility" (namespace da classe TraceExtension) na definição da classe proxy e, na definição do método que queremos gerar o log, adicionamos um atributo do tipo TraceExtensionAttribute (conforme a linha 423, destacada na figura 1).

Figura 1: Exemplo de atributo a ser informado no método do Web Service
Há quatro parâmetros que devemos informar ao declarar o atributo do tipo TraceExtensionAttribute: LogTypeMode, Path, RequestFileName e ResponseFileName.
- LogTypeMode: Define o que deverá ser gerado pelo log;
- Path: Caminho do diretório onde será armazenado o log;
- RequestFileName: O nome do arquivo que será gravado para registrar a mensagem enviada para o XML Web Service;
- ResponseFileName: O nome do arquivo que será gravado para registrar a mensagem recebida pela aplicação web.
O parâmetro LogTypeMode contém as opções None, Request, Response e RequestResponse.
- None: Não gera log;
- Request: Gera apenas o log da mensagem enviada para o XML Web service;
- Response: Gera apenas o log da mensagem recebida pela aplicação web;
- RequestResponse: Gera o log do envio e do recebimento das mensagens.
Lembrando, o diretório onde será armazenado os arquivos XML deve existir, senão ocorrerá erro.
Até mais!