我正在尝试获取 SkyDrive 上登录用户的所有文件夹列表。
LiveOperationResult operationResult = await client.GetAsync("me/skydrive/files");
dynamic result = operationResult.Result;
我希望能够做这样的事情:
Dictionary<string, object> folderData = (Dictionary<string, object>)result;
List<object> folders = (List<object>)folderData["data"];
foreach (object item in folders)
{
Dictionary<string, object> folder = (Dictionary<string, object>)item;
if (folder["name"].ToString() == "Folder Name")
{
showToastMessage(folder["id"].ToString());
return;
}
}
然而,在这一行:
Dictionary<string, object> folderData = (Dictionary<string, object>)result;
我收到错误:
无法将类型“System.Dynamic.DynamicObject”转换为
'System.Collections.Generic.Dictionary'
有谁知道我该如何解决这个问题?
问题是LiveOperationResult.Result不一定保证是Dictionary<string, object>
。然而,它被定义为IDictionary<string, object>
.
请注意,您似乎甚至不需要施放Result
任何类型字典的属性;你应该能够使用dynamic
变量直接访问要迭代的列表。
List<object> folders = (List<object>)result.data;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)