C#说我的命名空间导致了一个NullReferenceException

本文关键字:一个 NullReferenceException 我的 命名空间 | 更新日期: 2023-09-27 18:00:25

所以我得到了可怕的"死亡黄屏"(这就是.NET人员所说的),并显示错误消息:

[NullReferenceException: Object reference not set to an instance of an object.]

好吧,没关系,我能理解,但错误引用了一行代码,上面写着:

<namespace1>.<namespace2>.XMLDohickey responseXML = 
                                  new <namespace1>.<namespace2>.XMLDohickey();

(为保护无辜者而模糊的名字(:)。

我可以很容易地看到后面的行Session[<value>].ToString();是如何导致这个错误的,但我不明白它声称是由哪行引起的。

那么,是C#告诉了我错误的行号,还是命名空间实际上是null?

顺便说一句,在我公司的DEV和QA服务器上,这似乎在本地运行良好,但在我们客户的QA服务器上似乎失败了。。。

编辑


所以。。。这是交易。

显然,什么时候。NET崩溃,有时它会返回最后一个成功调用的行,而不是实际包含错误的行。在这种情况下,Session[<value>]为空(为什么?不知道。"不应该发生")。

C#说我的命名空间导致了一个NullReferenceException

命名空间永远不能为null,它永远不会生成任何类型的运行时错误(以您描述它的方式)。所以你的空引用可能在会话[key]中。ToString(),或者XMLDoHickey的构造函数。在调用一个方法之前,我会考虑检查会话状态中的值是否存在。

您确定异常不是来自XMLDohickey构造函数内部吗?

您需要强制重新编译,并且可能还需要清除临时internet文件。

当源代码和二进制文件不同步时,行号和实际指令经常不匹配,导致异常,这里必须是这种情况,因为命名空间肯定不会导致空引用异常:)

相关文章: