获取 WebService 异步函数的值

get value of webservice async function

提问人:ClassY 提问时间:1/14/2023 最后编辑:ClassY 更新时间:1/14/2023 访问量:67

问:

我有一个简单的 asp.net 网络服务,它有一个简单的异步函数,如下所示:

public class TestService : System.Web.Services.WebService
{

    [WebMethod]
    public async Task<string> HelloWorld()
    {
        await Task.Delay(TimeSpan.FromSeconds(2));
        return "Hello World";
    }
}

我想在我的 asp.net webforms 应用程序中获得它的结果,如下所示:

 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();
            return await client.HelloWorldAsync();
        }
    }

但我收到错误:

CS0029  Cannot implicitly convert type 'digital_sig_webapp.TestService.HelloWorldResponse' to 'string'

我在这里期待结果类型的字符串,那么发生了什么? 我怎样才能从中获得价值?

C# asp.net Web 服务 异步

评论


答:

-1赞 MD Zand 1/14/2023 #1

你要找的是 HelloWorldResponse 的文件之一。名称应为 HelloWorldResult。所以你的代码可以是这样的(未测试):

    async Task<string> GetFullName()
    {
        var client = new TestService.TestServiceSoapClient();
        var response = await client.HelloWorldAsync();
        return response.HelloWorldResult;
    }

评论

0赞 ClassY 1/14/2023
我们仍然会得到Cannot implicitly convert type 'digital_sig_webapp.TestService.TaskOfString' to 'string'