Windows应用商店应用Web服务消耗

时间:2013-10-19 15:56:32

标签: c# web-services windows-8

我有一个带有以下代码的Windows Phone 7应用程序

ServiceReference1.SMSWarriorServiceSoapClient ws = new ServiceReference1.SMSWarriorServiceSoapClient();
ws.BalanceCompleted += new EventHandler<ServiceReference1.BalanceCompletedEventArgs>(ws_BalanceCompleted);
ws.BalanceAsync(textBox1.Text, textBox2.Password);

现在我想将它也用于Windows 8商店应用程序。我试试这个

var client =  new ServiceReference1.SMSWarriorServiceSoapClient() ;
var result =  client.BalanceAsync("user", "pass");
resultDetails.Text = result.ToString ;

但没有运气 我也尝试了Await,但我不知道如何使用它

2 个答案:

答案 0 :(得分:0)

如果您使用await,则必须使用async关键字或使用Task

var client =  new ServiceReference1.SMSWarriorServiceSoapClient() ;
var result =  await client.BalanceAsync("user", "pass");
resultDetails.Text = result.ToString ;

例如:

// Put the keyword, async on the declaration of the event handler.
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
    var respose=await <some async operation >
}

答案 1 :(得分:0)

如果从事件句柄调用Web服务方法,请使用此方法。

private async void Button_Click_1(object sender, RoutedEventArgs e)
{
    var client = new ServiceReference1.SMSWarriorServiceSoapClient();
    var result = await client.BalanceAsync("user", "pass");
    resultDetails.Text = result.ToString();
}

如果从方法调用Web服务方法,请使用此方法。

private async Task ServiceCall()
{
    var client = new ServiceReference1.SMSWarriorServiceSoapClient();
    var result = await client.BalanceAsync("user", "pass");
    resultDetails.Text = result.ToString();
}

确保您使用ServiceCall()关键字调用方法await