Исключение типа «System.NullReferenceException» произошло в myproject.DLL, но не было обработано в коде пользователя - PullRequest
6 голосов
/ 10 марта 2011

Что означает эта ошибка? Я продолжаю получать эту ошибку, она работает нормально, и она только начала выдавать эту ошибку .... любая помощь?

img1.ImageUrl = ConfigurationManager.AppSettings.Get("Url").Replace("###", randomString) 
 + Server.UrlEncode(((System.Web.UI.MobileControls.Form)Page.FindControl("mobileForm")).Title);

Исключение типа 'System.NullReferenceException' произошло в MyProject.DLL, но не был обработан в коде пользователя

Дополнительная информация: ссылка на объект не установлена ​​на экземпляр объект.

Ответы [ 2 ]

5 голосов
/ 10 марта 2011

Это означает, что где-то в вашей цепочке вызовов вы пытались получить доступ к свойству или вызывать метод для объекта, который был null.

Учитывая ваше заявление:

img1.ImageUrl = ConfigurationManager
                    .AppSettings
                    .Get("Url")
                    .Replace("###", randomString) 
                + Server.UrlEncode(
                      ((System.Web.UI.MobileControls.Form)Page
                      .FindControl("mobileForm"))
                      .Title);

Я предполагаю, что либо вызов AppSettings.Get("Url") возвращает ноль, потому что значение не найдено, либо вызов Page.FindControl("mobileForm") возвращает ноль, потому что элемент управления не найден.

Вы можете легко разбить это на несколько операторов для решения проблемы:

var configUrl = ConfigurationManager.AppSettings.Get("Url");
var mobileFormControl = Page.FindControl("mobileForm")
                            as System.Web.UI.MobileControls.Form;

if(configUrl != null && mobileFormControl != null)
{
    img1.ImageUrl = configUrl.Replace("###", randomString) + mobileControl.Title;
}
2 голосов
/ 10 марта 2011

Это означает, что у вас есть нулевая ссылка где-то там. Можете ли вы отладить приложение и остановить отладчик, когда он появится здесь, и провести расследование? Возможно, img1 равно нулю или ConfigurationManager.AppSettings.Get("Url") возвращает ноль.

...