1

我通常会收到此错误并且(总是)不知道如何解决它。这次我也明白了,似乎我不理解一个概念或遗漏了什么这是代码

        // create a new twitteroo core with provided username/password
        TwitterooCore core = new TwitterooCore(username, password);

        // request friends timeline from twitter
        Users users = core.GetTimeline(Timeline.Friends); // error here

请一些帮助以及对正在发生的事情的一些解释谢谢

4

8 回答 8

3

我终于找到了问题这是因为我的防火墙似乎阻止了与 Visual Studio 的连接。现在它完全没有任何变化 :) 感谢您的所有支持

于 2009-02-14T11:29:27.743 回答
2

这个错误很痛苦,它基本上意味着你正在访问的一些变量仍然是空的。

在这种情况下,您在哪里初始化时间轴?你的代码应该是这样的:

Users users = core.GetTimeline().Friends;

好的,我一直在查看 twiteroo 文档,该文档有点稀疏,我认为您肯定需要实例化 Timeline 的实例以传递给 GetTimeline,(它返回用户集合,恕我直言,名称不是很好)。我想不通的是如何启动 Timeline 的实例。

好的,不是Timeline为空,(那是一个枚举!)所以正如bthb所说,它只能是核心,也许用户名或密码错误,或者它无法连接到twitter?

于 2009-02-14T11:07:43.693 回答
1

如果你反编译 dll,你会看到 GetTimeline(Enum) 接受了一个 Enumeration 参数。

构造函数调用会很好:

TwitterooCore core = new TwitterooCore(username, password);

来源:

public TwitterooCore(string username, string password)
{
        this._username = username;
        this._password = password;
}

GetTimeline 是尝试连接。

public Users GetTimeline(Timeline timeline)
{
    WebClient client = new WebClient();
    XmlDocument document = new XmlDocument();
    string xml = string.Empty;
    byte[] buffer = null;
    client.set_Credentials(this.GetCredentials());
    buffer = client.DownloadData(this.GetTimelineUrl(timeline));
    xml = Encoding.UTF8.GetString(buffer);
    document.LoadXml(xml);
    return this.DecodeStatusXml(document);
}
于 2009-02-14T11:10:42.423 回答
1

它可能是核心、用户名、密码或 Timeline.Friends,通过您提供给我们的信息无法知道哪个。

于 2009-02-14T11:11:48.490 回答
1

如果我是你,我会在出错的行上放一个断点,然后在 Timeline.Friends 上放一个手表并检查它是否为空,如果不是,则在 core.GetTimeline(Timeline.Friends) 上放一个手表,看看是否如此返回空值。

它应该会给你一个正确的方向,你可能必须阅读你使用的 twitter API 的文档来找出为什么其中任何一个返回 null。

于 2009-02-14T11:12:04.417 回答
1

如何检查您的代码,例如:

用户用户=空;
如果(时间线!= null)
{
    TwitterooCore 核心 = 新 TwitterooCore(用户名,密码);
    如果(核心!= null)
    {
        var friends = Timeline.Friends
        如果(朋友!= null)
            users = core.GetTimeline(Timeline.Friends);
    }
}

如果这无一例外地运行,则其中一个对象可能为空。

于 2009-02-14T11:33:42.507 回答
1

错误消息中有两个特定的短语,对象引用和对象实例。在处理 OOP 语言时,这些概念是非常基础的。

首先,可以将对象引用视为函数或类中的变量。该术语也可以指期望对对象的特定引用的函数参数。最初,变量的值为 NULL,直到使用 '=' 运算符将其设置为一个值。通常你会在同一个语句中有一个变量声明和'='操作。

对象实例一词是指使用语法创建的对象new。当您调用new初始化对象时,将分配一个未使用的内存位置来存储对象的副本,直到程序结束,或者对象超出范围并被垃圾收集器释放。在创建时,对象属性由调用来创建对象的构造方法定义。

考虑这段代码:

Integer my_int;
my_int = new Integer(5);

在此示例中,“my_int”是对正在创建的对象实例的对象引用。Integer

如果您尝试访问“my_int”,在为其分配对Integer 实例的引用之前,则会出现错误,“对象引用(my_int) 未设置为对象( ) 的实例Integer”。

于 2009-02-14T11:38:05.197 回答
0

可能是 Timeline.Friends 为空,也可能是 Timeline 为空。我建议您查看异常的堆栈跟踪并查看您的 twitter 框架的文档。

于 2009-02-14T11:07:05.457 回答