我修改了Xamarin / Azure TODO示例。但代码卡在
中IMobileServiceTable.ToListAsync()
这是我的IO类:
class DataIO
{
BackgroundWorker DatabaseWorker = new BackgroundWorker();
IMobileServiceTable<UserPosition> PositionTable;
MobileServiceClient client;
public DataIO()
{
Init();
}
public void Init()
{
client = new MobileServiceClient(Constants.ApplicationURL);
PositionTable = client.GetTable<UserPosition>();
}
async void AddEntry(UserPosition entry)
{
await PositionTable.InsertAsync(entry);
}
public async Task<List<UserPosition>> GetEntries()
{
List<UserPosition> Entries = await PositionTable.ToListAsync();
return Entries;
}
public async void DeleteEntry(UserPosition entry)
{
await PositionTable.DeleteAsync(entry);
}
public async void AddToDatabase(UserPosition item)
{
await PositionTable.InsertAsync(item);
}
}
调试器不会跨越它也不会抛出错误。 如何处理?
在之前的电话会议中,没有任何问题。
编辑: 我已将GetEntries()方法重写为:
public async Task<List<UserPosition>> GetEntries()
{
Task<List<UserPosition>> task = PositionTable.ToListAsync();
List<UserPosition> entries = await task;
return entries;
}
根据这个example。但调试器只停留在行
Task<List<UserPosition>> task = PositionTable.ToListAsync();
答案 0 :(得分:0)
AFAIK,IMobileServiceTable.ToListAsync()
将按如下方式发送请求以检索结果:
Get https://<your-app-name>.azurewebsites.net/tables/UserPosition
我建议您在调用IMobileServiceTable.ToListAsync()
时使用Fiddler来收集网络跟踪。此外,您可以通过浏览器从移动应用程序访问表端点,以确保您的移动应用程序可以按预期工作。另外,这是一个关于Handling Data in Mobile Clients的精彩教程,您可以参考它。