myproject.DLL中发生了'System.NullReferenceException'类型的异常,但未在用户代码中处理

时间:2011-03-10 14:39:36

标签: c# mobile-website

这个错误是什么意思?,我一直收到这个错误,它用来正常工作,它刚开始抛出这个错误....任何帮助?

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

发生了'System.NullReferenceException'类型的异常   MyProject.DLL但未在用户代码中处理

     

附加信息:对象引用未设置为的实例   对象

2 个答案:

答案 0 :(得分:5)

这意味着您的调用链中的某个位置,您尝试访问属性或在null的对象上调用方法。

鉴于你的陈述:

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

我猜测对AppSettings.Get("Url")的调用是返回null,因为找不到值,或者对Page.FindControl("mobileForm")的调用返回null,因为找不到控件。

您可以轻松地将其分解为多个语句来解决问题:

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;
}

答案 1 :(得分:2)

这意味着你在某处有一个空引用。您可以调试应用程序并在调试器到达此处并进行调查时停止它吗?可能img1为空或ConfigurationManager.AppSettings.Get("Url")返回null。