如何在 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<string>?GetAuthorNames();}接下來定義一個 AuthorService 服務類實現一下 IAuthorService 接口,下面的代碼展示了 AuthorService 類的具體定義。
public?class?AuthorService?:?IAuthorService{public?List<string>?GetAuthorNames(){List<string>?lstAuthors?=?new?List<string>();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<string[]>?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 的更多細節,我會在后面的文章中和大家細聊。
譯文鏈接:https://www.infoworld.com/article/3323584/how-to-consume-a-wcf-soap-service-in-aspnet-core.html
總結
以上是生活随笔為你收集整理的如何在 ASP.Net Core 中对接 WCF的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么有些大公司的效率弱爆了?
- 下一篇: asp.net ajax控件工具集 Au