C # говорит, что мое пространство имен вызывает исключение NullReferenceException - PullRequest
0 голосов
/ 23 июня 2011

Итак, я получил страшный «желтый экран смерти» (так его называли ребята .NET) с сообщением об ошибке:

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

ОК, хорошо,Я могу это понять, но ошибка ссылается на строку кода, которая гласит:

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

(имена скрыты для защиты невинных (:).

Я легко вижу, как строка после, Session[<value>].ToString();, может вызвать эту ошибку, но я не понимаю, как эта ошибка может быть вызвана строкой, которую, как она утверждает, вызвана.

Итак, C # говорит мне не ту строкуномер, или пространство имен может фактически быть нулевым?

В качестве примечания: кажется, что это работает нормально локально, на серверах DEV и QA моей компании, но кажется, что оно не удалось на сервере QA нашего клиента..

РЕДАКТИРОВАТЬ


Итак ... вот в чем дело.

Очевидно, что при сбое .NET иногда возвращается последняя успешная строка, вызванная вместо строки.который на самом деле содержал ошибку. В этом случае Session[<value>] был нулевым (Почему? Не знаю. что "Shникогда не случится ").

Ответы [ 3 ]

5 голосов
/ 23 июня 2011

Пространство имен никогда не может быть нулевым, оно никогда не будет генерировать никаких ошибок времени выполнения (в том виде, как вы его описываете). Так что ваша нулевая ссылка, вероятно, находится в Session [key] .ToString () или в конструкторе XMLDoHickey. Я хотел бы проверить, существует ли значение в состоянии сеанса, прежде чем вызывать метод для него.

5 голосов
/ 23 июня 2011

Вы уверены, что исключение не происходит из конструктора XMLDohickey?

4 голосов
/ 23 июня 2011

Вам нужно принудительно перекомпилировать и, возможно, также удалить временные интернет-файлы.

Часто встречаются несоответствия в номерах строк и фактической инструкции, вызывающей исключение, когда исходный код и двоичные файлы не синхронизированы, и это должно быть в данном случае, поскольку пространства имен, безусловно, не вызывают исключений нулевой ссылки:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...