某些时候SkyDrive API访问代码有时无效

时间:2013-05-19 11:45:10

标签: windows-8 windows-runtime microsoft-metro onedrive

我正在尝试从我的代码中访问skydrive内容。以下代码之前有效但突然停止执行第二个结果。不确定微软在后面做了什么!请帮忙。请注意,范围无效,我的win8应用程序可以访问。

var authClient = new LiveAuthClient();
var scopes = new[] { "wl.signin", "wl.skydrive", "wl.basic" };
Task<LiveLoginResult> resultTask = authClient.LoginAsync(scopes);
var client = new LiveConnectClient(resultTask.Result.Session);
dynamic result1 = client.GetAsync("me/skydrive");


dynamic result2 = result1.Result;

result1 = client.GetAsync("me/skydrive");
result2 = result1.Result;

由于 Kajal

1 个答案:

答案 0 :(得分:2)

您的代码缺少异步/等待。

如果您的代码位于事件正文中,则使用async void作为返回类型,否则使用async Task<T>其中T类型返回类型数据。

  

var authClient = new LiveAuthClient();

     

var scopes = new [] {“wl.signin”,“wl.skydrive”,“wl.basic”};

     

任务resultTask = 等待 authClient.LoginAsync(范围);

     

var client = new LiveConnectClient(resultTask.Result.Session);

     

动态result1 = 等待 client.GetAsync(“me / skydrive”);

     

动态结果2 = result1.Result;

     

result1 = 等待 client.GetAsync(“me / skydrive”);

     

result2 = result1.Result;