栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

如何在 ASP.Net Core 中对接 WCF

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在 ASP.Net Core 中对接 WCF

在 REST API 出现之前,SOAP (Simple Object Access Protocol) 一直都是基于 web 的标准协议,虽然现在 REST 大行其道,但在平时开发中总会遇到对接第三方服务采用的是基于SOAP协议的场景,在这篇文章中,我们将会讨论如何在 ASP.Net Core 中对接 WCF。

创建 WCF

WCF 是一个安全可靠的消息平台,它提供统一的编程模型便于开发基于面向服务的应用程序,你可以使用 WCF 构建基于 SOAP 协议的服务,并使用 xml 作为数据交换格式,或者基于 REST 的 json 数据交换格式。

这一节中首先创建一个 WCF SOAP 服务,在创建项目模板的时候选择 WCF Service Application 即可,如下图所示:

值得注意的是,WCF 通常由以下几个部分组成。

  • Service 类

  • Service 契约

  • Operation 契约

  • Endpoints 端点

  • Hosting 环境

当要使用 WCF,需要在类和方法上分别加上:ServiceContract 和 OperationContract,下面的代码展示了一个契约类仅包含一个契约方法的代码定义。


    [ServiceContract]
    public interface IAuthorService
    {
 [OperationContract]
 List GetAuthorNames();
    }

接下来定义一个 AuthorService 服务类实现一下 IAuthorService 接口,下面的代码展示了 AuthorService 类的具体定义。


    public class AuthorService : IAuthorService
    {
 public List GetAuthorNames()
 {
     List lstAuthors = new List();
     lstAuthors.Add("Joydip Kanjilal");
     lstAuthors.Add("Steve Smith");
     lstAuthors.Add("Michael Stevens");
     return lstAuthors;
 }
    }

这就是构建 WCF 服务的所有步骤,接下来就可以打开浏览器对服务进行简单测试了。

在 ASP.Net Core 中使用 SOAP 服务

与传统的 ASP.NET 不同,ASP.Net Core 中并没有 Add Service Reference 选项去添加对 WCF 服务地址的引用,新的操作方式需要利用 Microsoft WCF Web Service Reference Provider 来进行服务引用,如下图所示:

当点击图中的 Finish 之后,VS会自动帮你完成一系列的初始化,比如从SOAP服务中下载元数据,生成客户端的代理代码,自动生成 Reference.cs 文件,等等。

好了,接下来可以在 Controller 中初始化 SOAP Service ,然后再调用 Service 端的 GetAuthorNamesAsync() 方法,如下代码所示:


 [HttpGet]
 public async Task Get()
 {
     ServiceReference1.AuthorServiceClient authorServiceClient = new ServiceReference1.AuthorServiceClient();
     var data = await authorServiceClient.GetAuthorNamesAsync();
     return data;
 }

WCF Connected Service 是 Visual Studio 的一个扩展插件,它允许在 ASP.Net Core 项目中实现对 WCF 服务的引用,当然,除了WCF还可以引用 Azure Storage 服务,关于 Azure Storage 的更多细节,我会在后面的文章中和大家细聊。

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号