http://blog.csdn.net/wangzhongbo_24/article/details/49954191
Web Service有三种表示方式
三种方式分别为WSDL、Endpoint(asmx)和Disco等。根据查找资料,对它们的区别为:
- Endpoint: web服务的URI地址,你访问之后,就会出现web服务的相关类描述、方法列表以及方法描述。
- Disco: 通过这个可以找到该web服务。即利用了web服务发现机制中的一种发现机制disco。
- WSDL: 该web服务的描述性语言。即Web Services Description Language。用来描述你的web服务定义的方法和属性、binding协议部分、port端口以及服务URI。
这个博文中 http://blog.csdn.net/xieyufei/article/details/11572839讲的比较清楚,不在赘述。
将Web Service 引入到C#工程中
1、将Endpoint或者Disco格式的Web Service引入工程中
以Endpoint为例,右键【Solution】,选择【Add】【Service Reference】,然后将.asmx格式的文件加入,点击【Go】就OK了。
然后右键引用web,选择【View in Object Browser】,可以在【Object Browser】看到工程中引入的对应接口和类,以及包含的方法。
将对应的namespace引入,在.cs文件中可输入如下代码,进行调用服务:
WeatherWebServiceSoapClient wwssc=new WeatherWebServiceSoapClient();
string []str= wwssc.getWeatherbyCityName("Beijing");
Console.WriteLine(str);
- 1
- 2
- 3
2、将WSDL格式的Web Service引入工程中
将WSDL文件格式的web服务引入到C#工程中,与上述步骤差不多,差别在于,进入【Service Reference】后,点击【Advanced…】【Add Web Reference…】,最后加入WSDL文件即可。同样可以在【Object Browser】中查看,并且.cs中引用同理。
总结
经过一天断断续续的折腾,终于搞定了在C#工程中调用Web Service 的问题,这样就可以比较轻松的实现服务端与客户端完全的解耦。在摸索的过程中,网上好多介绍的方法比较麻烦,该文章中,主要介绍将Endpoint、Disco和WSDL三种格式的Web Service 如何以简单的方式引入。希望对大家有帮助,也欢迎讨论!