web-dev-qa-db-ja.com

タイプ 'System.NullReferenceException'の例外がmyproject.DLLで発生しましたが、ユーザーコードでは処理されませんでした

このエラーの意味は何ですか?、このエラーが発生し続けますが、正常に機能し、このエラーがスローされ始めました...

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

タイプ 'System.NullReferenceException'の例外がMyProject.DLLで発生しましたが、ユーザーコードでは処理されませんでした

追加情報:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

6
Nick Kahn

これは、呼び出しのチェーンのどこかで、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;
}
_
5
Justin Niessner

これは、どこかにnull参照があることを意味します。アプリをデバッグし、アプリがここに来たら調査を停止して調査できますか?おそらく_img1_がnullであるか、ConfigurationManager.AppSettings.Get("Url")がnullを返しています。

2
Matt Greer