C#根据WSDL文件生成WebService服务端代码
2014-08-19 16:00
519 查看
转自:http://www.cnblogs.com/liyi93/archive/2012/01/30/2332320.html
虽然现在已经进入了.NET FrameWork 4.0的时代,WebService也已经逐渐被淘汰,取而代之的是WCF。
但在工作中难免遇到需要兼容旧版本程序和按照以前的文档进行开发。
一般一个已经实现功能的WebService会发布自己的WSDL文件,供客户端调用生成代理类。
但有时是先有server与client交互的接口定义(WSDL)文件,然后由server和client端分别写程序,一个提供web服务,一个使用web服务。
最近,我也遇到了这个问题。由于业务方仅提供了WSDL文件并确定了其规范,需要我们开发服务端供调用。
1、使用VS2010提供的工具wsdl.exe由WSDL文件生成cs文件
使用wsdl.exe的/serverInterface选项(或缩写的 /si)指定输入的wsdl文件(注意,如果要转换的wsdl文件中import了其他wsdl文件,则所有文件都应列出,包括使用到的xsd文件也应列出)。输出将是 一个代码文件(默认是C#的,如果需要别的语言,参考MSDN中wsdl.exe的使用说明),其中包含每个 wsdl 绑定的接口。
![](http://pic002.cnblogs.com/images/2012/68819/2012013017580576.jpg)
示例:假设有ServerInterfaceSample.wsdl
wsdl.exe /si ServerInterfaceSample.wsdl
如果使用Service.xsd作为schema文件,则改为
wsdl.exe /si ServerInterfaceSample.wsdl Service.xsd
生成代码如下:
2、使用以上生成的文件进行修改,实现你的WebService方法即可.
虽然现在已经进入了.NET FrameWork 4.0的时代,WebService也已经逐渐被淘汰,取而代之的是WCF。
但在工作中难免遇到需要兼容旧版本程序和按照以前的文档进行开发。
一般一个已经实现功能的WebService会发布自己的WSDL文件,供客户端调用生成代理类。
但有时是先有server与client交互的接口定义(WSDL)文件,然后由server和client端分别写程序,一个提供web服务,一个使用web服务。
最近,我也遇到了这个问题。由于业务方仅提供了WSDL文件并确定了其规范,需要我们开发服务端供调用。
1、使用VS2010提供的工具wsdl.exe由WSDL文件生成cs文件
使用wsdl.exe的/serverInterface选项(或缩写的 /si)指定输入的wsdl文件(注意,如果要转换的wsdl文件中import了其他wsdl文件,则所有文件都应列出,包括使用到的xsd文件也应列出)。输出将是 一个代码文件(默认是C#的,如果需要别的语言,参考MSDN中wsdl.exe的使用说明),其中包含每个 wsdl 绑定的接口。
![](http://pic002.cnblogs.com/images/2012/68819/2012013017580576.jpg)
示例:假设有ServerInterfaceSample.wsdl
wsdl.exe /si ServerInterfaceSample.wsdl
如果使用Service.xsd作为schema文件,则改为
wsdl.exe /si ServerInterfaceSample.wsdl Service.xsd
生成代码如下:
//------------------------------------------------------------------------------ // <auto-generated> // 此代码由工具生成。 // 运行时版本:4.0.30319.239 // // 对此文件的更改可能会导致不正确的行为,并且如果 // 重新生成代码,这些更改将会丢失。 // </auto-generated> //------------------------------------------------------------------------------ using System; using System.ComponentModel; using System.Diagnostics; using System.Web.Services; using System.Web.Services.Protocols; using System.Xml.Serialization; // // 此源代码由 wsdl 自动生成, Version=4.0.30319.1。 // /// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")] [System.Web.Services.WebServiceBindingAttribute(Name="WebServiceSoap", Namespace="http://tempuri.org/")] public interface IWebServiceSoap { /// <remarks/> [System.Web.Services.WebMethodAttribute()] [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/sendSMS", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] long sendSMS(InfoHeader header, string sessionId, string sender, string smsContent, string receiverList, string productCode, string pseudoFlag); }
2、使用以上生成的文件进行修改,实现你的WebService方法即可.
相关文章推荐
- C#根据WSDL文件生成WebService服务端代码
- C#根据WSDL文件生成WebService服务端代码
- C#根据WSDL文件生成WebService服务端代码
- C#根据WSDL文件生成WebService服务端代码
- C#根据WSDL文件生成WebService服务端代码
- webservice 根据WSDL文件 生成java client端代码
- webservice 服务端例子+客户端例子+CXF整合spring服务端测试+生成wsdl文件 +cxf客户端代码自动生成
- MyEclipse根据WSDL文件生成WebService客户端并调用服务端方法
- webservice根据wsdl文件生成代码doc命令
- 采用axis2c进行webservice发布的流程3-通过wsdl文件,自动生成C的服务端代码
- 根据wsdl文件生成服务端代码
- webservice CXF整合spring服务端测试并生成wsdl文件
- 根据wsdl文件生成java代码
- 根据wsdl文件或者wsdl地址生成对应的java代码
- PHP根据wsdl生成调用soap webservice代码
- 利用axis1.4根据wsdl文件生成对应的java代码
- wsdl生成Webservice客户端和服务端C#代码
- 根据wsdl 利用axis1.4的WSDL2Java工具生成服务端和客户端代码
- WebService系列博客{三}[通过本地Wsdl文件生成客户端调用代码、MyEclipse视图调用webservice]
- 分享:根据webservice WSDL地址自动生成java调用代码及JAR包