使用Windows平台和Visual Studio 2017以上版本IDE开发.NET Core应用的时候,添加SOAP WebService或者WFC服务非常简单和方便,只需要在项目的引用,添加服务引用
,填入服务的wsdl
地址即可。
但是如果开发环境非Windows,或者使用VSCode作为IDE开发时,就没有那么方便的引用方式。好在微软给出了解决方案——使用dotnet-svcutil
工具即可以方便引用SOAP或者WCF服务。
在Mac或者Linux中开发.NET Core程序也能方便的使用SOAP或者WCF服务。
具体方法如下:
1. 安装dotnet-svcutil 工具
执行命令:dotnet tool install --global dotnet-svcutil
即可全局安装。
2.引入SOAP或者WCF服务
命令行进入到项目文件夹,例如:
cd ~/workspace/projct/webapi/
执行引用命令,例如服务地址为:http://www.example.com/SayHello.svc
,
则执行命令:
dotnet-svcutil http://www.example.com/SayHello.svc
3.服务引用完成
等待命令行完成引用后,项目文件夹会多出一个文件夹:ServiceReference
,
其中有两个文件:
dotnet-svcutil.params.json
(包含了服务的所有配置和依赖信息。
Reference.cs
(包含了服务的接口定义、方法定义和实体定义等)。
4.服务调用
不要忘记使用dotnet resotre
命令,确认SOAP/WCF服务引用成功。
在需要调用的地方,即可以正常使用了,例如在某个Service.cs
的类中使用:
a. 添加引用:using ServiceReference;
b. 初始化客户端:var client = new ExampleClient();
c.调用具体方法:var response=await client.SomeMethodAsync();
*需要注意的是:服务引用添加的都是Async方法,需要配合async/await关键词使用,或者直接使用同步的Result属性获取响应结果。
5. 更多用法
使用命令dotnet-svcutil --help
查看更多使用帮助和说明。
网友评论