terça-feira, maio 15, 2007

Outputs dos web methods

Imaginemos que se tem um web method com a seguinte assinatura:

[WebMethod]
public void TestWS(out int va1, out double va2);

Ao criar uma web reference para esta classe (o nome da classe poderá ser ClassWS) como acham que é feita a chamada ao método apresentado? Provavelmente algo do género:

ClassWS ws = new ClassWS();
int var1;
double var2;
ws.TestWS(out var1, out var 2);

Pois é quem apostou nesta versão sinto muito mas não é um dos vencedores. Ao gerar a classe que faz wrapping, ao web service o método que é gerado para acesso a este método tem a seguinte assinatura:

public int TestWS(out double va2);

Desconhecia esta optimização, mas como é facil de verificar faz todo o sentido. Logo a chamada será algo do género:

ClassWS ws = new ClassWS();
int var1;
double var2;
var1 = ws.TestWS(out var 2);

Sem comentários: