No tutorial anterior criamos um web service simples e uma página web que consumiria esse web service. Continuaremos o nosso trabalho aqui, agora manipulando tipos de dados mais complexos, como arrays.

Se você não possui os arquivos passados, baixe-os aqui.

  • Clique com o botão direito sobre a solução do seu projeto e adicione um novo projeto do tipo Class Library chamado Registro Produto, como na imagem abaixo:

  • Crie uma classe Registro dentro do namespace RegistroProduto, como no exemplo abaixo:
[code language=”csharp”] public class Registro
{
public string nomeProduto;
public double valorCompra;
public double valorVenda;
public short qtdComprada;
}
[/code]
  • Em seguida adicione uma referência a sua ClassLibrary em seu WebService.

  • Crie um novo método no arquivo .asmx, dentro do WebService, como o abaixo:
[code language=”csharp”] [WebMethod] public Registro[] RetornaRegistros()
{
Registro[] registros = new Registro[3];

Registro r = new Registro();

r.nomeProduto = “bolinha”;
r.valorCompra = 1.09;
r.valorVenda = 2.80;
r.qtdComprada = 1;

registros[0] = r;
registros[1] = r;
registros[2] = r;

return registros;
}
[/code]

  • Para ver como os resultados são retornados em um documento XML, salve as alterações e defina o Web Service como start up project. Ao rodar e invocar o método, você terá um retorno parecido com o abaixo:
[code language=”xml”]

bolinha
1.09
2.8
1
bolinha
1.09
2.8
1
bolinha
1.09
2.8
1

[/code]
  • O próximo passo será consumir esse método com retorno array em uma página web. Localize, no projeto web, sua referência ao web service e clicando com o botão direito sobre a mesma, selecione a opção de update.
  • Crie um novo web form e adicione a ele um botão e um gridview. Dê um duplo clique no botão para criar a função onclick. Dentro dessa função instaciaremos a conexão, como fizemos no exemplo anterior, e definiremos o datasource do grid, que será o retorno da função do web service, atualizando-o.
[code language=”csharp”] protected void bntAtualizarRegistro_Click(object sender, EventArgs e)
{

localhost.Service1 ws = new localhost.Service1();
grvRegistro.DataSource = ws.RetornaRegistros();
grvRegistro.DataBind();

}
[/code]

Ao clicar o botão, você verá algo como o exemplo abaixo:

Viu como é simples? Para baixar os arquivos desse tutorial, clique aqui. Se você tem alguma dúvida, consulte a primeira parte desse tutorial ou deixe sua pergunta nos comentários abaixo!

// Comente!

comentários