跨平台.NET Core程序引用SOAP WebService和WCF服务

使用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查看更多使用帮助和说明。

6. 参考文档:

https://docs.microsoft.com/en-us/dotnet/core/additional-tools/dotnet-svcutil-guide?tabs=dotnetsvcutil2x

你可能感兴趣的:(跨平台.NET Core程序引用SOAP WebService和WCF服务)