nbsp;}
private int imag;
public int Imag
{
get { return imag; }
set { imag = value; }
}
public ComplexNumber(int real, int imag)
{
this.real = real;
this.imag = imag;
}
public ComplexNumber()
{
}
}
然后是实现复数加法的Web Method,写在同一个Web Service中:
[WebMethod]
public ComplexNumber AddComplexNumber(ComplexNumber num1, ComplexNumber num2)
{
return new ComplexNumber(num1.Real + num2.Real, num1.Imag + num2.Imag);
}
相应的ASPX页面中也要添加一些HTML,让用户输入两个复数: Pass complex type to web service - add the two complex numbers:<br />
(<input id="cplx1r" type="text" value="1" size="3" />+
<input id="cplx1i" type="text" value="2" size="3" />i) + (
<input id="cplx2r" type="text" value="3" size="3" />+
<input id="cplx2i" type="text" value="4" size="3" />i) =
<input id="btnAddComplex" type="button" value="?" onclick="return btnAddComplex_onclick()" />
<br />
然后是相应的JavaScript,当用户点击上面的按钮时,执行这段JavaScript以调用Web Method。
function btnAddComplex_onclick() {
var cplx1 = {Real: $(''cplx1r'').value, Imag: $(''cplx1i'').value};
var cplx2 = {Real: $(''cplx2r'').value, Imag: $(''cplx2i'').value};
SimpleWebService.AddComplexNumber(cplx1, cplx2, onAddComplextNumberComplete);
}
function onAddComplextNumberComplete(result) {
$(''btnAddComplex'').value = result.Real.toString() + '' + '' + result.Imag.toString() + ''i'';
}
浏览器中运行一下,初始化:
点击第一个问号,调用AddInt () Web Method计算1+2,得到3:
点击第二个问号,调用AddComplexNumber () Web Method计算(1+2i) + (3+4i),得到4+6i:
源代码可以在此
通过以上两个示例,您已经了解了如何与服务器端Web Service进行复杂通信。但实际开发中,往往还需要进行一些其它的处理,例如对服务器的错误信息的处理,对超时的处理,对用户取消操作的处理等等。Atlas同样提供了对以上需求的内建的支持。在后续文章中,我将全面介绍Atlas对Web Service的mash up中对上述复杂情况的处理。