我们在《
添加完WebService的代理后,我们就可以在程序中使用了,下面看看上面窗体的代码如下:
1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Text;
7
using System.Windows.Forms;
8
9
namespace WindowsPro
10
}
其中的第18行“MyServ.MyServiceClass MyWebServ = new MyServ.MyServiceClass();”是实列化MyServiceClass代理类,以便在下面的代码中调用MyServiceClass中的方法,在第21行“bool LoginOK = MyWebServ.Login(this.tB_UserName.Text, this.tB_PassWord.Text);”中调用了MyServiceClass中的Login方法,MyWebServ生成Soap消息后发送到服务器端验证所输入的用户名和密码是否正确,并返回结果。大家可以运行一下这个程序,输入正确的用户名“Micky”和密码“micky0”测试一下,再输入一个其他的用户名和密码测试一下。2
3
4
5
6
7
8
9
10
这里简要解释一下调用机制:Login方法中的两个参数(从this.tB_UserName.Text和this.tB_PassWord.Text中获得)通过MyServiceClass的代理类MyServ生成一个Soap消息,将这个Soap消息通过Http协议发送给服务器端的MyServiceClass,而服务器端的MyServiceClass解析Soap消息后调用相应的方法执行,并将方法返回的值再由MyServiceClass生成一个Soap消息通过Http协议发送给调用的客户端,当调用的客户端MyServiceClass的代理类MyServ接受到这个消息,解析出里面返回的值,赋值给变量bool LoginOK。
由上面说的可以看出我们必须知道每个调用的方法所要传入的参数类型和方法所要返回值的类型。
今天我们通过一个Windows应用程序的用户登录窗口实现了一个简单的C/S程序调用WebService。下一篇随笔我们还是要用到MyServiceClass这个服务,并将修改其中的Login方法,再来讲解使用此应用程序如何再次调用修改后的MyServiceClass服务。