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

转自: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 绑定的接口。

示例:假设有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服务端代码

时间: 2024-11-23 06:46:32

C#根据WSDL文件生成WebService服务端代码的相关文章

C# 利用VS自带的WSDL工具生成WebService服务类

C# 利用VS自带的WSDL工具生成WebService服务类 wsdl /language:c# /n:空间名 /out:D:/类名 webService接口地址

记一次在Eclipse中用Axis生成webservice服务端的过程中出现的问题

问题一. Unable to find config file.  Creating new servlet engine config file: /WEB-INF/server-config.wsdd 找不到这个.wsdd的配置文件,没有自动生成! 原因是使用Eclipse自动生成axis服务端时没有执行的最后一步!如图: 当进行的这一步时,需要接着点击启动服务的按钮,之后Next按钮就会可用,点击Next按钮后就会自动生成这个.wsdd文件! 问题二. AxisFault faultCod

根据已有的WSDL文件进行WebService服务开发和部署

如何根据WSDL文档开发部署Web Service服务? WSDL文档是描述Web Service接口该如何开发和部署的具体描述文档,十分重要.一个接口的WSDL文档里会包含接口部署时的服务名(service name),接口的绑定信息,绑定端口信息和接口方法中的参数信息等.根据这些信息,我们可以通过WSDL文档反向自动建立接口的java代码结构,提高开发工作效率. 下面介绍一下使用WSDL文档反向自动建立接口的java代码结构的步骤. 一.新建Dynamic Web Project 项目. 二

axis2生成webservice服务端返回String[]和String[][]一维数组和二维数组解析

环境:用axis2生成服务端,用aixs做客户端 1:直接返回String[]: public String[] testArr(String name) { String[] ret=new String[]{"一二三四五","上山打老虎",name}; return ret; } 发布后,wsdl为: 而普通返回String方法的格式为: 可以看到,返回String[]比返回String的响应中多了一个参数maxOccurs="unbounded&qu

Axis2发布webservice(3)--axis2生成wsdl文件,并利用wsdl文件来生成WebService的Java代码

一.利用axis2生成wsdl文件 1.file->New->Other->Axis2 Code Generator 2.选择第2个,点击next 3,先点击add folder->浏览选择WebService项目下的bin文件夹,然后在fully Qualified Class name中填入类路径(包括包名) 然后点击Test 测试是否正确. 点击Next 4.可以看到即将发布的WebService名称和命名空间 5.继续Next,选择wsdl文件保存目录 这样services

PHP写webservice服务端

1) WebService技术介绍 WebService是一种跨编程语言和跨操作系统平台的远程调用技术.仅仅有通过Web Service,client和server才可以自由的用HTTP进行通信.不论两个程序的平台和变成语言是什么. XML.SOAP和WSDL是Web Service平台的三大技术: WebService採用HTTP协议数据传输.採用XML格式封装数据,即XML中说明调用远程服务对象的哪个方法.传递的參数是什么.以及服务对象的返回结果是什么. XML是WebService平台中表

java之wsdl自动生成WebService客户端

在web项目中调用webservice接口,以及创建自己的webservice服务端 由于甲方的服务器并不在外网,编码环境是不能直接访问对方的webservice接口的,所以需要把wsdl文件下载到本地,在通过工具生成代理类. 用java的JDK自带命令wsimport -s . xxx.wsdl生成代理类 其中-s表示生成源代码,不指定的话只会生成.calss字节码文件 中间的点"."表示在当前路径 后面空格接上本地的wsdl文件或者URL,例如http://www.xxx.com/

webService服务端和客户端开发 简单实例

这几天一直在看webService相关的知识. webService是一个跨平台访问的第三方插件,方便易用,多平台使用. 开发中我们可能自己是服务端,提供webService接口给别人访问我们的系统:也有可能我们调用别人的webService接口去访问别人的系统(比如查询天气预报). 下面是服务端和客户端的开发,实际开发中我们只是其中一方. 服务端开发: ①创建一个服务类,运行main方法发布即可,服务端就开发完成了. package com.lijianbo.service; import j

【webservice】发布axis2的webservice服务端

axis2版本:axis2-1.5.4 准备工作:下载axis2-1.5.4-war.zip(生成服务端).axis2-1.5.4-bin.zip(axis2的jar包),jdk5(及以上版本).tomcat(端口我设成8086了) 手把手超级详细介绍axis2的webservice服务端的生成与发布. 1. 解压axis2-1.5.4-war.zip得axis2.war,把axis2.war放到tomcat的webapps目录, 启动tomcat就能加载axis2.war并生成新的axis2目