WCFclient 操作仅 Async .Net core 2.0
WCFclient operation only Async .Net core 2.0
我将 asp.net 核心 2.0 中的 wcf 服务端点添加到连接的服务中,然后我尝试使用它,但是对于客户端,只有以 ..async
结尾的函数
我不想使用...async.But没有.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 的回答 here.
也就是说,我建议您使用提供的异步方法。要支持这一点,您必须将 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();
}
在 Visual Studio 2019 年的 .NET Core 项目中有一种方法可以生成同步方法。
将 WCF Web 服务引用添加到您的 .NET 核心项目的向导在第三步中有一个选项 Generate Synchronous Operations
,客户端选项:
确保选中它,因为默认情况下它是未选中的。
我将 asp.net 核心 2.0 中的 wcf 服务端点添加到连接的服务中,然后我尝试使用它,但是对于客户端,只有以 ..async
结尾的函数我不想使用...async.But没有.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 的回答 here.
也就是说,我建议您使用提供的异步方法。要支持这一点,您必须将 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();
}
在 Visual Studio 2019 年的 .NET Core 项目中有一种方法可以生成同步方法。
将 WCF Web 服务引用添加到您的 .NET 核心项目的向导在第三步中有一个选项 Generate Synchronous Operations
,客户端选项:
确保选中它,因为默认情况下它是未选中的。