Привет, я использую твиттер, чтобы получить список друзей для аутентифицированного пользователя. После нескольких успешных итераций цикла while. Я получаю invalidcastexception при вызове ResponseObject.NextPage. Я не понимаю, почему я получаю ошибку. Кто-нибудь может понять, почему?

Код ниже.

    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;
    }
0
Johnno Nolan 9 Мар 2011 в 00:47

2 ответа

Лучший ответ

Похоже на ошибку ... NextPage будет удалена из следующей версии Twitterizer http : //forums.twitterizer.net/viewtopic.php? f = 9 & t = 475

0
Johnno Nolan 15 Мар 2011 в 13:19

Если это может помочь, я обнаружил, что у меня было это исключение при чтении географических координат с широтой или долготой, установленной в целочисленное значение (без каких-либо ".").

Преобразование в 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
takrl 13 Июл 2011 в 22:06