尽管Web服务在过去几年里掀起了狂潮,但是我过去不是一定要使用Web服务的——直到最近。我当时正在进行一个项目,它使用了用Java创建的后端和用.NET构建的用户界面。Java和.NET组件之间的通讯是成功项目所需要的,所以Web服务被安装在Java端,由.NET前端使用。
Web服务简化了把两个单独的环境集成到一起的过程,所以它对双方来说是一种双赢的因素。而且,我对在.NET端使用外部Web服务是多么容易的印象十分深刻。在本周的专栏里,我将说明这有多么简单;而且,在本时事通讯未来的文章里,我将谈到使用.NET框架构建Web服务的诸方面内容。
你需要什么
在.NET项目里使用Web服务涉及到创建和编译代理类,它的生成是从参照到Web服务的。这个参照可以是多种格式:
如果你使用Visual Studio .NET,那么通过添加Web索引(Web Reference)把Web服务加入到你的项目里就很容易了。此外,你可以使用.NET框架里的WSDL.exe工具。
下面就是使用Web服务的过程:
1. 找到带有文件或者URL的Web服务。
2. 使用WSDL.exe或者你最喜欢的集成开发环境(IDE)创建Web服务的代理类。
3. 使用合适的编译器(或者IDE)编译代理类。
4. 在代码里使用代理类来利用Web服务。
为了更好地说明这一点,我将要使用来自xMethod Web网站的一个Web服务示例。这个服务可利用给定的美国邮政编码来获得(当地)的温度。在这里,第一步已经完成了,所以WSDL文件被用来创建代理类:
WSDL.exe
/out:TemperatureService.cs /n:BuilderWS /l:CS
http://www.xmethods.net/sd/2001/TemperatureService.wsdl
如果使用VB.NET的话,就要进行一点改变:语言选择应该是/l:VB。这一步的结果是一个源代码文件。
下面列出了使用C#完成相同目的的代码:
现在你可以用自己的IDE或者命令行来编译源代码。下面几行显示了如何使用命令行的C#编译器来编译代码:
csc /t:library
/out:TemperatureService.dll TemperatureService.cs
/reference:System.Web.Services.dll
/optimize