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

C# 调用WebService的3种方式 :直接调用、根据wsdl生成webservice的.cs文件生成dll调用、动态调用...   1.直接调用 已知webservice路径,则可以直接 添加服务引用--高级--添加web引用 直接输入webservice URL。这个比较常见也很简单 即有完整的webservice文件目录如下图所示, 也可以在本地IIS根据webservice文件目录新发布一个webservice,然后程序动态调用,修改Url public new string Url { set; ... 阅读详情

虽然现在已经进入了.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

    生成代码如下:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//------------------------------------------------------------------------------
// <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方法即可.

IDEA根据wsdl生成java代码(Generate Java Code from WSDL)以及乱码问题的解决 乱码是因为文件编码不一致,Win10默认字符编码为936(GBK),导致IDEA根据wsdl生成的java文件编码为GBK,而如果IDEA设置了全局/项目编码为UTF-8,这时打开文件就会乱码。可修改IDEA配置,单独将乱码文件配置为GBK也能解决乱码问题,但是文件太多时很不方便。可借助EmEditor文本编辑器统一将所有选中的GBK文件转为UTF-8。 阅读详情

相关推荐

开发Web Service之二:WSDL逆向生成服务端

        一般开发Web Service,是选写服务端,再根据生成WSDL文件生成客户端。看过一本SOA的书中说,如果实现防止不同语言一些特定的数据类型的不兼容性,推荐先定义WSDL接口,包括一输入输出参数、返回值及相关的数据类型等,再通过WSDL生成服务器端和客户端,这样的好处是:服务端不用关心客户端怎么调用,客户端也不用关系服务端如何实现。       关于Eclipse中A

Mr.qiu的专栏 5579

使用WSDL工具生成C#使用的WebService声明文件

打开cmd,输入wsdl.exe /language:c# /n:Namespaces /out:C:/TestService.cs http://web/WS/WebService1.asmx?wsdl 解释说明 1.wsdl.exe的位置在C:\Program Files (x86)\Microsoft SDKs\Windows的v7.0A或V7.1A等下的Bin下几个文件夹都可以找找 ...

weixin_30535843的博客 472

解析利用wsdl.exe生成webservice代理类的详解

利用wsdl.exe生成webservice代理类:根据提供的wsdl生成webservice代理类1、开始->程序->Visual Studio 2005 命令提示2、输入如下红色标记部分D:/Program Files/Microsoft Visual Studio 8/VC>wsdl /language:c# /n:TestDemo /out:d:/Temp/TestService.cs D:/Temp/TestService.wsdl在d:/Temp下就会产生一个TestService.cs 文件注意:D:/Temp/TestService.wsdlwsdl路径,可以是url路径:

C#生成基于WSDLWebService接口调用代码

WSDL 可描述网络服务(Web Services) WSDL 指网络服务描述语言 (Web Services Description Language)。 WSDL 是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作(或方法)。 打开VS2015开发人员命令行 输入 wsdl /language:c# /n:Demo /out:d:/TestService.cs http://www.abc.com/webservice..

qq_31493411的博客 1349

WSDL文件生成WEB service server端C#程序

http://www.cnblogs.com/wenanry/archive/2012/01/18/2325281.html   一般一个已经实现功能的WEB Server会发布自己的WSDL文件,供客户端生成代理类。  但有时是先有的server与client交互的接口定义(WSDL文件,然后由server和client端分别写程序,一个提供web服务,一个使用web服务。 以下

Lyncai的专栏 3373

(转帖)WSDL文件生成WEB service server端C#程序

一般一个已经实现功能的WEB Server会发布自己的WSDL文件,供客户端生成代理类。 但有时是先有的server与client交互的接口定义(WSDL文件,然后由server和client端分别写程序,一个提供web服务,一个使用web服务。 以下介绍如何由已有的WSDL文件在VS2005中生成server端代码。 1)使用VS2005提供的工具wsdl.exe...

weixin_30444105的博客 107

WebService 根据 wsdl 文件生成 Java 代理类方式汇总

目录 wsimport 简介 wsimport 使用示例 服务端 客户端 调用测试 wsimport 简介 1、Java JDK 的 bin文件夹下有一个 wsimport.exe 工具,可依据 wsdl 文件生成相应的类文件,将生成好的类文件拷贝到需要使用的项目中,就可以像调用本地的类一样调用 webService 提供的方法。 2、wsimport.exe 工具可以用于非 Ja...

蚩尤后裔-汪茂雄 1万+

WSDL文件生成C#的WEB service服务端

 一般一个已经实现功能的WEB Server会发布自己的WSDL文件,供客户端生成代理类。但有时是先有的server与client交互的接口定义(WSDL文件,然后由server和client端分别写程序,一个提供web服务,一个使用web服务。以下介绍如何由已有的WSDL文件在VS2005中生成server端代码。1)使用VS2005提供的工具wsdl.exe由WSDL文件

yanick技术博客 5925

wsdl生成Webservice客户端和服务端C#代码

【整理,本文内容来源于网络及本人实践】 Webservice一般是先开发服务,发布wsdl后由客户端调用,但也有先有标准的wsdl文件,反过来开发服务的情况。为了保证开发的服务和wsdl一样,可以把往wsdl生成服务端代码,实现其中方法,再发布服务。 VS提供了一个命令,可以将wsdl生成服务端或客户端代码。打开:开始-所有程序-Microsoft Visual Studio2008-Visu

aleyuan的专栏 6768
上一篇: 开发者不容错过的12款开源JavaScript库
下一篇: C# 软件自动更新升级
kissdeath
博客等级 码龄21年 17粉丝 13原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值