C#之wsdl工具的使用
webservice 调用与生成的过程,其实都非常简单,有人说,现在都说改用WCF了。要我说啊,WCF是微软典型的败笔而已,明明有webapi方便、简繁、快捷。
俺在这里写写,只是为了记录一下,岁数大很容忘记东西,但凡高手直接绕过就好了。
这个东西好像是大象装冰箱分,也就是1和2嘛
1.生成客户端代码调用webservice代码
wsdl E:\WS.wsdl /out:WS.cs
这个生成代码和引用方式生成的代码几乎一样,代码这里就不卖弄了。这么干的理由也就是可以少一个引用动作而已。似乎有点先进性的感觉。
2.反过来生成服务端
wsdl /si C:\webserver.wsdl /out:D:\
服务端代码当然是一个接口,大概如下
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.17929。
//
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.17929")]
[System.Web.Services.WebServiceBindingAttribute(Name="webserver", Namespace="http://localhost:8080/webserver.wsdl")]
[System.Xml.Serialization.SoapIncludeAttribute(typeof(WebSoeInfo))]
[System.Xml.Serialization.SoapIncludeAttribute(typeof(VarValue))]
public interface IWebserver {
/// <remarks/>
[System.Web.Services.WebMethodAttribute()]
[System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace="urn:scada", ResponseNamespace="urn:scada")]
[return: System.Xml.Serialization.SoapElementAttribute("result")]
int UserLogin(string username, string password);
/// <remarks/>
[System.Web.Services.WebMethodAttribute()]
[System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace="urn:scada", ResponseNamespace="urn:scada")]
[return: System.Xml.Serialization.SoapElementAttribute("result")]
VarValue[] ReadVarValue(string varNameList);
/// <remarks/>
[System.Web.Services.WebMethodAttribute()]
[System.Web.Services.Protocols.SoapRpcMethodAttribute("", RequestNamespace="urn:scada", ResponseNamespace="urn:scada")]
[return: System.Xml.Serialization.SoapElementAttribute("result")]
int WriteVarValue(string varName, int waitTime, string value);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2018-03-29 jsvascript === 和==的区别