广州.NET培训
达内广州.NET培训中心

18589266248

热门课程

C#根据WSDL文件生成WebService服务端代码

  • 时间:2017-01-31 23:54
  • 发布:广州.NET培训
  • 来源:达内新闻

虽然现在已经进入了.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 绑定的接口。

示例:假设有ServerInterfaceSample.wsdl

wsdl.exe /si ServerInterfaceSample.wsdl

如果使用Service.xsd作为schema文件,则改为

wsdl.exe /si ServerInterfaceSample.wsdl Service.xsd

生成代码如下:

//------------------------------------------------------------------------------

//

// 此代码由工具生成。

// 运行时版本:4.0.30319.239

//

// 对此文件的更改可能会导致不正确的行为,并且如果

// 重新生成代码,这些更改将会丢失。

//

//------------------------------------------------------------------------------

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。

//

///

[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")]

[System.Web.Services.WebServiceBindingAttribute(Name="WebServiceSoap", Namespace="http://tempuri.org/")]

public interface IWebServiceSoap {

///

[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方法即可.

上一篇:.NET操作Excel表格的整理
下一篇:Web Service基本概念

达内.net编程班:2017年中国信息流广告汇报

达内.net编程班:进程内存模型

广州达内:正确运用异步编程技术的技巧

广州达内老师分享.Net的性能

选择城市和中心
贵州省

广西省

海南省