C# 从webservice调用异步方法
我对使用web服务还不熟悉,我正在尝试实现一种方法,但遇到了麻烦。这是我试图从中获得响应的方法:C# 从webservice调用异步方法,c#,web-services,asynchronous,async-await,C#,Web Services,Asynchronous,Async Await,我对使用web服务还不熟悉,我正在尝试实现一种方法,但遇到了麻烦。这是我试图从中获得响应的方法: (awaitable) Task<getIbuttonDataResponse> SpecSrvClient.getIbuttonDataAsync(GetIbuttonDataInput getIbuttonDataInput) Usage: getIbuttonDataResponse x = await getIbuttonDataAsync(...); 编辑: 对不起,我没有
(awaitable) Task<getIbuttonDataResponse> SpecSrvClient.getIbuttonDataAsync(GetIbuttonDataInput getIbuttonDataInput)
Usage:
getIbuttonDataResponse x = await getIbuttonDataAsync(...);
编辑:
对不起,我没有意识到我还不能发布图片,所以把我搞砸了
我的问题是,当我试图从Web服务获取响应时,如何传递IButtoniField字符串?这是获得响应所需的值
编辑2:
好的,这就是我到目前为止写的:
static class Program
{
//...
static void Main()
{
//...
getIbuttonDataResponse x = new getIbuttonDataResponse();
Response(serial, x);
//...
}
static async void Response(string[] serial, getIbuttonDataResponse x)
{
iButtonDB_Service.SpecSrvClient testrequest = new SpecSrvClient();
GetIbuttonDataInput input = new GetIbuttonDataInput { ibuttonId = serial[0], testerName = "me" };
x = await testrequest.getIbuttonDataAsync(input);
}
}
我只得到一个null返回,但这可能是因为它试图访问的数据库值尚未创建。这部分内容不会因为调用了async方法而更改。您仍然需要创建输入对象的实例,填充它,然后将其传递给服务调用:
GetIbuttonDataInput input = new GetIbuttonDataInput {ibuttonId ="x", testerName ="me"};
getIbuttonDataResponse x = await getIbuttonDataAsync(input);
您没有附加图像。请加上。我将为你添加一个链接。你将得到一个空返回,因为你没有返回任何内容。您正在将
getibutondataresponse
传递到Response
方法中,而不是从那里返回它。尝试static async Task Response(string[]serial){…return wait testrequest.getibuttonadaasync(input);}
Ok,谢谢。这很有道理,我感谢你的帮助!
GetIbuttonDataInput input = new GetIbuttonDataInput {ibuttonId ="x", testerName ="me"};
getIbuttonDataResponse x = await getIbuttonDataAsync(input);