为什么在测试null时收到此NullReferenceException错误?
我在以下代码行收到错误:对象引用未设置为对象的实例。为什么在测试null时收到此NullReferenceException错误?
if (Session["AutoCompleteCustomersPhone"] != null)
的代码完全块:
if (Session["AutoCompleteCustomersPhone"] != null)
earchCustomerPhone = true;
else
{
searchCustomerPhone =
bool.Parse(Session["AutoCompleteCustomersPhone"].ToString());
}
为什么,在空测试,我会收到这个错误?
因为sessionn对象本身无效
我认为你正在使用Web服务,这就是为什么会话为空*
检查这个aricle如果您在Web服务使用会话的理由:Using Session State in a Web Service
你确实是对的。它是一个Web服务。我想我的下一个问题是可以在Web服务中使用Session吗?多数民众赞成在不同的话题。谢谢。 – Kevin 2012-03-15 13:58:59
@Kevin - 查看我粘贴的文章链接解析你的issu – 2012-03-15 14:01:05
你if
说法是围绕走错了路。如果为 null,则试图使用该值。
更改此:
if (Session["AutoCompleteCustomersPhone"] != null)
这样:
if (Session["AutoCompleteCustomersPhone"] == null)
我想解决这个问题第一,看看是否能解决这个问题。
从具体线传来的例外可能是要么是因为:
- 的
Session
变量为空 - 你可以在调试器中验证这一点。 - 您的编译代码与您用于调试的源代码不同。尝试清洁和重建。
+1好点,但是这不会在这个特定的线上造成异常。 – 2012-03-15 13:53:02
你确定亚当?看起来像它在else块中用于我... – greg84 2012-03-15 13:53:16
@ greg84是在别的,但很好奇为什么异常是在'if'中报告的,因此我修改了“在这个特定行上”。 – 2012-03-15 13:53:37
很可能,'Session'本身是'null'。 – 2012-03-15 13:49:48
这段代码到底在哪里运行?它可能会给我们一个线索,为什么会话是空的... – greg84 2012-03-15 13:58:16
这是在一个ASMX Web服务,或WCF? – 2012-03-15 14:11:48