NullReferenceException для экземпляра объекта? - PullRequest
0 голосов
/ 10 сентября 2008

Это фрагмент кода из приложения, которое я унаследовал, пользователь получил Желтый экран смерти:

Ссылка на объект не установлена ​​для экземпляра объекта

на линии:

bool l_Success ... 

Теперь я на 95% уверен, что ошибочный аргумент - ref l_Monitor, что очень странно, учитывая, что объект был создан несколькими строками раньше. Кто-нибудь знает, почему это произойдет? Обратите внимание, что я видел ту же проблему в других местах кода.

IDMS.Monitor l_Monitor = new IDMS.Monitor();
l_Monitor.LogFile.Product_ID = "SE_WEB_APP";

if (m_PermType_RadioButtonList.SelectedIndex == -1) {
    l_Monitor.LogFile.Log(
        Nortel.IS.IDMS.LogFile.MessageTypes.ERROR,
        "No permission type selected"
        );
    return;
}
bool l_Success = SE.UI.Utilities.GetPermissionList(
    ref l_Monitor,
    ref m_CPermissions_ListBox,
    (int)this.ViewState["m_Account_Share_ID"],
    (m_PermFolders_DropDownList.Enabled)
        ? m_PermFolders_DropDownList.SelectedItem.Value
        : "-1",
    (SE.Types.PermissionType)m_PermType_RadioButtonList.SelectedIndex,
    (SE.Types.PermissionResource)m_PermResource_RadioButtonList.SelectedIndex);

Ответы [ 4 ]

1 голос
/ 10 сентября 2008

Вы уверены, что одно из свойств, пытающихся получить доступ к экземпляру l_Monitor, не равно нулю?

0 голосов
/ 17 сентября 2008

NullReferenceException фактически был брошен в блоке catch, поэтому трассировка стека не могла отобразить эту строку кода, поэтому вместо этого она остановилась у вызывающего.

Это действительно было одно из свойств экземпляра l_Monitor.

0 голосов
/ 10 сентября 2008

Я склонен согласиться с остальными; Похоже, что один из параметров, которые вы передаете SE.UI.Utilities.GetPermissionList, является нулевым, что вызывает исключение. Лучше всего запустить отладчик и проверить, были ли переменные перед вызовом этого кода.

0 голосов
/ 10 сентября 2008

Временно добавьте несколько переменных для всех запросов свойств в этой строке (loooooongg). Запустите отладчик, проверьте значения и исправьте небольшую ошибку.

...