ASP.NET WebService异步方法调用返回值类型不匹配问题求助
问题原因与解决方案
原因分析
当你在WebForms项目中添加ASP.NET WebService的服务引用时,Visual Studio自动生成的客户端代理会将异步方法的返回值包装成响应对象(比如这里的HelloWorldResponse),而非直接返回你定义的string类型。这是SOAP服务的默认生成规则,响应对象会把原始方法的返回结果封装为自身的一个属性。
解决方法
你需要从HelloWorldResponse对象中提取实际的字符串结果,该属性的命名规则通常是[方法名]Result,也就是HelloWorldResult。
修改后的代码如下:
public partial class _Default : Page { protected void Page_Load(object sender, EventArgs e) { RegisterAsyncTask(new PageAsyncTask(GetFullName)); } async Task<string> GetFullName() { var client = new TestService.TestServiceSoapClient(); var response = await client.HelloWorldAsync(); // 从响应对象中提取实际的字符串结果 return response.HelloWorldResult; } }
内容的提问来源于stack exchange,提问作者ClassY
相关产品推荐
相关产品推荐

