2013-07-25 49 views
2

因此,我正在开发Windows Phone 8应用程序(对于Windows Phone 8也是全新的),并且在尝试弄清楚如何获取时遇到问题来自异步Web服务方法的结果,但现在我刚刚尝试的代码失败,并说“表达式不会产生一个值”。下面是我刚试过代码:Visual Studio 2012/Windows Phone 8从异步Web服务获得结果

'Get previous date 
Dim pdate As DateTime 
pdate = DateTime.Today.AddDays(-1) 
Dim previousDate As String = pdate.ToString("d") 

Dim service As New MobileService.MobileServiceSoapClient 
Dim results As New List(Of String)() 
results.AddRange(service.GetErrorTableAsync(DeviceIDAsString, previousDate)) 

所以GetErrorTable Web服务返回结果的XML集,并与iOS应用程序,我可以解析XML文件来创建自己的价值观的数组(如果有的话),但我似乎无法找到关于如何为Windows Phone/VB执行相同操作的一致答案。任何指南或教程都将非常有帮助,因为我有一些Web服务返回大量对象,有些只返回单个值。

回答

2

该函数GetErrortableAsync应该有一个回调委托,它将被称为GetErrorTableComplete。所以你给这个委托添加一个处理程序。你的名字可能稍有差异,但应该足够接近你在服务对象上找到它们。

AddHandler service.GetErrorTableComplete AddressOf GetErrorTableCompleted 
service.GetErrorTableAsync(DeviceIDAsString, previousDate) 


Private Sub GetErrorTableCompleted(sender As Object, e As MobileService.GetErrorTableCompleteEventArgs) 
    'now you can access the e.Results 
End Sub 
+0

这正是我需要找到的,到目前为止,它看起来像它会工作,所以我只需要在数据库中扔一些测试数据,看看它是否正确传递。感谢您的帮助 –

+0

您可以通过将鼠标悬停在“e.Results”上来查看返回类型,看看您的匹配类型。 – OneFineDay

+0

嗯,我不知道这是模拟器还是web服务的问题,但是当我尝试使用'Convert.ToString(e.Result)'来获得结果时,我所得到的就是'GetErrorTableCompleteEventArgs'作为字符串。 –