C # WebService简单使用实例--关于WSDL文件的正向反向生成

1.1 背景

     webService 作为一种语言无关性的程序与程序之间的通讯方式,曾经使用非常广泛,随着微软无语的迭代更新的速度,已经不是那么流行。之前主要都是被人提供一个URL,我在vs里面添加服务引用,IDE自动帮我生成相关的代码。这样就可以调用别人的方法了,可是这建立在对方的web服务处于打开状态下,你才能添加服务引用,并生成相关的代码。可是有一天别人的web服务并没有部署,并向你扔了一个WSDL文件,我去!!其中心酸的弯路不再废话,主要记录下如何从wsdl文件生成客户端代码,以及如何通过url生成wsdl文件。

 

1.2 如何通过url生成wsdl文件

   有时候作为服务的提供方,我只是在本地将web 服务的方法写好调试好,并没有部署到服务器上,这时候客户端的那个小伙子还在等着我们提供给他web 引用呢,这个时候 只有我部署完毕,他的进度才能继续。哈哈,这个时候就是这个wsdl文件站出来发挥作用的时候了。为了演示,就要自己新建一个简单的web Service。

   

               里面的web方法如下,不用动:

              

         开启服务之后,地址栏里面会有url如下:

       这个时候wsdl文件已经生成了,可是我在这个项目的每个文件夹下都找遍了都没有,去LG百度上搜索得到信息是:任何 一门语言或是IDE在其生成的时候wsdl文件就已经生成了,fuck,Google了一下原来是要在网址后面加一个?WSDL,注意中间不能有空格

回车一下,这个时候我们看到下面这个xml一样的页面,这个时候右键--另存为。注意不要cory到txt档里面,再改文件名后缀这样丢给被人的时候,生成代码的时候会报错。

 

 

   另存为

   

    好了到此这个wsdl文件已经生成,这个时候可以关掉代码,把wsdl文件丢给下一个小伙子了。

 

1.3 如何通过wsdl文件生成指定语言的代码

    有个这个wsdl文件,就可以生成java的,C#的,php的等等的代码了,主要演示一下vs下面怎么用,首先要在工具--外部工具--添加 ,里面配置个wsdl.exe的工具,你配置好之后在工具里面就能找的到,大部分小伙伴可能还没用过这个外部工具吧,详细的如何配置

Google或者百度一下都可以。配置好之后如下:

 

  这个时候我们要事先把被人丢过来的wsdl文件放到一个好找的文件夹下:

 

 

这个时候再新建一个winform客户端测试项目,新建一个文件夹,选中文件夹,再选中工具--刚刚配置的那个工具,点击确认。这样一个cs文件就生成到你选中的文件下面去了,选中文件夹--添加现有项,把代码显示出来。

   

如果出现以下输出没报错说明生成成功了。

 

 

这个时候客户端的这个我们刚自动生成的mybmm.cs的文件会报错:web.servers找不到,这个时候需要手动引用一下这个dll。

 

  到此大功告成,收工,慢着还需要测试一下。

1.4 测试引用

     在客户端拖一个按钮试一下。

    

   显示可以调用,和添加服务引用的效果一样,不过文件夹目录那里没有服务引用的痕迹。

 

 

posted @ 2019-04-21 17:43  无心无信  阅读(1689)  评论(0编辑  收藏  举报