C#开发和调用Web Service (转)再点击“调用”按钮,就可以看到用XML格式返回的Web Service结果下图。说明我们
C#开发和调用Web Service (转)
再点击“调用”按钮,就可以看到用XML格式返回的Web Service结果下图。说明我们的Web Service环境没有问题,而且还初步接触了一下最简单的Web Service。
同样点击addition方法,进入addition方法的调用页。
选好存储位置,语言后点击确定,进入默认页面。然后先添加Web引用,把WebService引到当前的工程里面。方法是:在资源管理器中点击右键,选择添加Web 引用,调出对话框:
而整个计算并不是在本地进行的,是在Web服务端进行计算的然后将结果通过XML返还给了调用方的,所以,在运行该程序的时候,WebService程序还必须启动,否则会报无法连接远程服务器的异常,如下图:
到此一个一个简单的WebService的开发和调用就已经完成了,在实际应用中可以根据自己的需要,写一些功能强大的,复杂的WebService,不管多么复杂,整个流程都是这样的。
?
?1?using?System;
?2?using?System.Data;
?3?using?System.Configuration;
?4?using?System.Web;
?5?using?System.Web.Security;
?6?using?System.Web.UI;
?7?using?System.Web.UI.WebControls;
?8?using?System.Web.UI.WebControls.WebParts;
?9?using?System.Web.UI.HtmlControls;
10?public?partial?class?_Default?:?System.Web.UI.Page?
11?{
12?????protected?void?Page_Load(object?sender,?EventArgs?e)
13?????{
14?????????//在页面加载的时候动态创建一个按钮,在它的事件里调用Webservice
15?????????Button?btn?=?new?Button();
16?????????btn.Width?=?20;
17?????????btn.Text?=?"?=?";
18?????????btn.Click?+=new?EventHandler(btn_Click);
19?????????E.Controls.Add(btn);
20?????}
21?????///?<summary>
22?????///?定义动态创建Button的Click事件,在这个事件中调用Webservice
23?????///?</summary>
24?????///?<param?name="sender"></param>
25?????///?<param?name="e"></param>
26?????void?btn_Click(object?sender,?EventArgs?e)
27?????{
28?????????if?(Num1.Text?!=?""?&&?Num2.Text?!=?"")
29?????????{
30?????????????//实例化引用的webservice对象
31?????????????localhost.Service?WebserviceInstance?=?new?localhost.Service();
32?????????????int?Oper?=?selectOper.SelectedIndex;
33?????????????switch(?Oper)
34?????????????{
35?????????????????//通过实例化的webservice对象来调用Webservice暴露的方法
36?????????????????case?0:
37?????????????????????Result.Text?=?WebserviceInstance.addition(double.Parse(Num1.Text),?double.Parse(Num2.Text)).ToString();
38?????????????????????break;
39?????????????????case?1:
40?????????????????????Result.Text?=?WebserviceInstance.subtract(double.Parse(Num1.Text),?double.Parse(Num2.Text)).ToString();
41?????????????????????break;
42?????????????????case?2:
43?????????????????????Result.Text?=?WebserviceInstance.multiplication(double.Parse(Num1.Text),?double.Parse(Num2.Text)).ToString();
44?????????????????????break;
45?????????????????case?3:
46?????????????????????Result.Text?=?WebserviceInstance.division(double.Parse(Num1.Text),?double.Parse(Num2.Text)).ToString();
47?????????????????????break;
48?????????????}
49?????????}
50?????}
51?}
52