在本篇文章中,将探讨如何在客户端应用程序中使用Web服务。假设已经在之前的文章中创建了一个Web服务,现在将按照以下步骤来消费这个Web服务。
首先,在解决方案资源管理器中右键单击“WebServicesDemo”解决方案,并添加一个新的ASP.NETWeb应用程序项目,将其命名为“CalculatorWebApplication”。
接下来,需要添加对Web服务的引用。为此,首先在“CalculatorWebApplication”项目的“引用”文件夹上右键单击,然后选择“添加服务引用”选项。
在“添加服务引用”窗口的“地址”文本框中,输入Web服务的地址,然后点击“转到”按钮。在“命名空间”文本框中,输入“CalculatorService”,然后点击“确定”。
点击“确定”后,Visual Studio将根据WSDL文档创建一个代理类。在“服务引用”文件夹下,可以看到提供的命名空间“CalculatorService”。
如果想查看生成的代理类,首先点击顶部的“显示所有文件”按钮。然后,可以看到名为“Reference.cs”的文件。打开该文件,可以看到名为“CalculatorWebServiceSoapClient”的类。这个类就是代理类。在这个类内部,可以看到与“CalculatorWebService”中的“Add”方法非常相似的“Add”方法。
在解决方案资源管理器中右键单击“CalculatorWebApplication”项目,并添加一个新的Web表单,命名为“WebForm1.aspx”。
将以下HTML代码复制并粘贴到Web表单中:
<table style="font-family: Arial">
<tr>
<td><b>第一个数字</b></td>
<td>
<asp:TextBox ID="txtFirstNumber" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td><b>第二个数字</b></td>
<td>
<asp:TextBox ID="txtSecondNumber" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td><b>结果</b></td>
<td>
<asp:Label ID="lblResult" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td colspan="2">
<asp:Button ID="btnAdd" runat="server" Text="Add" OnClick="btnAdd_Click" />
</td>
</tr>
</table>
将以下代码复制并粘贴到代码隐藏文件中的按钮点击事件中:
protected void btnAdd_Click(object sender, EventArgs e)
{
CalculatorService.CalculatorWebServiceSoapClient client = new CalculatorService.CalculatorWebServiceSoapClient();
int result = client.Add(Convert.ToInt32(txtFirstNumber.Text), Convert.ToInt32(txtSecondNumber.Text));
lblResult.Text = result.ToString();
}
现在,右键单击“WebForm1.aspx”并选择“在浏览器中查看”。输入第一个数字和第二个数字,例如20和30,然后点击“添加”按钮。将得到预期的结果50。