C#使用WSDL服务
前言
做上位机,难免遇到需要和总控/MES等系统进行对接,那必然少不了接口的调用。例如WebServices;简单的用法请参考以下文章
可站在标准的开发过程,考虑到后期的扩展性、可维护性,那就需要做到类模块抽离,以满足后期的维护等。因此考虑到使用WSDL的方式来调用接口。
环境
鉴于我使用的是VS2022这个IDE,所以以下内容均以VS2022为例展开介绍如何在C#项目中高效使用WSDL。
一、 获取wsdl
介绍一种最简单的获取方法:
- 运行并打开接口服务
- 在地址栏后面添加?wsdl,并回车即可得到wsdl内容
- 鼠标右击另存为wsdl文件
二、 根据WSDL接口生成XXX.cs文件
- 打开开始菜单内的VS 2022的开发人员命令提示符(这里注意用管理员身份) :
- 在刚刚打开的命令提示符内键入指令:
wsdl /language:c# /n:GeneralControlService /out:C:\ApiService.cs C:\api.wsdl
参数说明:
序号 | 参数 | 作用 |
---|---|---|
1 | /language:C# | 指定编程语言为 C# |
2 | /n:GeneralControlService | 指定名称空间为 GeneralControlService |
3 | /out: | 指定文件保存路径和文件名 ApiService.cs,可以使用绝对路径也可以使用相对路径 |
4 | C:\api.wsdl | wsdl文件路径,也可以是网络路径(如:http://www.xxx.com/ApiService?wsdl) |
完成此步骤后,就可以看到ApiService.cs文件了
三、根据XXX.cs文件生成XXX.dll文件
还是步骤一的控制台(命令提示符)不要关,键入指令:
csc /t:library ApiService.cs
在相同路径下,生成了ApiService.dll文件,拷贝到项目下,添加引用就可以了。
四、使用方法
- 项目的引用中添加引用:
- 代码中使用:
using GeneralControlService;
GeneralControlServiceis = new GeneralControlService();
或者
GeneralControlService.WebServiceTask webService = new GeneralControlService.WebServiceTask();
- 调用
webService.XXX();