Asp.net
僅 WCFclient 操作 Async .Net core 2.0
我在 asp.net core 2.0 中將 wcf 服務端點添加到連接的服務,然後我嘗試使用它,但是對於客戶端,只有以 ..async 結尾的功能
我不想使用 …async。但是沒有 .async 就沒有功能
這有什麼問題?我該怎麼辦?
而不是使用那個
var response = SystemClient.SearchCountriesAsync(....我想用那個
var response = SystemClient.SearchCountries(...但它給出了那個錯誤
錯誤 CS1061“SystemClient”不包含“SearchCountries”的定義,並且找不到接受“SystemClient”類型的第一個參數的擴展方法“SearchCountries”(您是否缺少 using 指令或程序集引用?)
您的客戶端沒有公開同步方法,但這對您來說應該不是問題。
而不是非同步呼叫該方法,只需執行以下操作:
response = SystemClient.SearchAirportsAsync(credentials, SystemHelperLanguageTypes.English, SystemHelperSearchTypes.CodeSearch, "ist").Result;這將同步呼叫該方法,因為它會阻塞呼叫。在這裡查看 John Skeets 的答案。
話雖如此,我建議您使用提供的非同步方法。為了支持這一點,您必須將 Action 簽名更改為:
public async Task<IActionResullt> Index() { SystemClient SystemClient = new SystemClient(); Credential credential = new Credential(); credential.UserName = "username"; credential.UserPassword = "****"; var response1 = await SystemClient.SearchCountriesAsync(credentials, SystemHelperLanguageTypes.English, SystemHelperSearchTypes.CodeSearch, "TR"); var response = await SystemClient.SearchAirportsAsync(credentials, SystemHelperLanguageTypes.English, SystemHelperSearchTypes.CodeSearch, "ist"); //Do whatever you do with those responses ViewBag.Language = "ar"; return View(); }
