获取twitter朋友的下一页时无效的强制转换异常

时间:2011-03-08 21:47:26

标签: c# .net twitter twitterizer

您好我正在使用twitterizer获取经过身份验证的用户的好友列表。 在一些成功迭代的while循环之后。当我调用ResponseObject.NextPage时,我得到一个invalidcastexception。我很难过为什么我得到错误。谁能明白为什么?

以下代码。

    List<String> GetFriends(OAuthTokens tokens)
    {
        var result = new List<String>();
        TwitterResponse<TwitterUserCollection> friendsResponse = TwitterFriendship.Friends(tokens);
        if (friendsResponse.Result != RequestResult.Success)
        {
            return new List<string> {friendsResponse.ErrorMessage};

        }

        TwitterUserCollection friends = friendsResponse.ResponseObject;

        while (friends != null)
        {
            result.AddRange(friends.Select(x => x.Name));
            var y = friends.NextPage(); //ERROR HERE
            friendsResponse = y; 

            if (friendsResponse.Result != RequestResult.Success)
            {
                return new List<string> {friendsResponse.ErrorMessage};

            }
            friends = friendsResponse.ResponseObject;
        }
        return result;
    }

2 个答案:

答案 0 :(得分:1)

如果这可能会有所帮助,我发现在读取纬度或经度设置为整数值(没有任何“。”)的地理坐标时出现此异常。

转换为double引发了异常,所以我在Methods \ Geo \ Coordinate.cs中更改了这部分源代码:

if (count % 2 > 0)
{
    result.Add(new Coordinate());
    result[itemIndex].Latitude = (double)reader.Value;
}
else
{
    result[itemIndex].Longitude = (double)reader.Value;
}

if (count % 2 > 0)
{
    result.Add(new Coordinate());
    result[itemIndex].Latitude = System.Convert.ToDouble(reader.Value);
}
else
{
    result[itemIndex].Longitude = System.Convert.ToDouble(reader.Value);
}

并且没有例外......

答案 1 :(得分:0)

这看起来像一个bug ... NextPage将从Twitterizer http://forums.twitterizer.net/viewtopic.php?f=9&t=475的下一个版本中删除