asp.net 获取Web服务异步函数的值

rdrgkggo  于 2023-01-14  发布在  .NET
关注(0)|答案(1)|浏览(125)

我有一个简单的asp.netwebservice,它有一个简单的异步函数,如下所示:

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

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

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

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'

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

unhi4e5o

unhi4e5o1#

您要查找的是HelloWorldResponse的字段之一。名称应为HelloWorldResult。因此,您的代码可能如下所示(未测试):

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

相关问题