簡體   English   中英

運行應用程序時出現“對象引用未設置為對象實例”錯誤

[英]“Object reference not set to an instance of an object” error when running app

我有這段代碼,當用戶單擊按鈕時,該代碼應該將XML文件的屬性加載到字符串變量中:

    public void Button1_Click(object sender, EventArgs e)
    {
        XDocument doc = XDocument.Load("C:/Structure.xml");
        Visit(doc.Root);


    }

    public static void Visit(XElement element)
    {

        string siteURL1 = element.Attribute("URL").Value;
        string siteTitle1 = element.Attribute("siteTitle").Value;
        string siteDescription1 = element.Attribute("siteDescription").Value;
        string siteTemplate = element.Attribute("siteTemplate").Value;
        string name = element.Attribute("type").Value;
        Execute(name, siteURL1, siteTitle1, siteDescription1, siteTemplate); 
}

但是,當我部署Webpart並單擊按鈕時,出現“ NullreferenceException未由用戶代碼處理/未將對象引用設置為對象實例”的錯誤。 上:

  string siteURL1 = element.Attribute("URL").Value;" 

我可能做錯了什么嗎?

結構如下所示:

<root>
  <level1 name="level1A"
          type="Private"
          template="3 
          siteTitle="Private"
          siteDescription="Private Site"  
          URL"private">
    <level2 name="level2A">
      <level3 name="level3A">
        <level4 name="level4A">
          <level5 name="level5A">
            <level6 name="level6A">
              <level7 name="level7A">
                <level8 name="level8A"></level8>
              </level7>
            </level6>
          </level5>
        </level4>
      </level3>
    </level2>
  </level1>
</root> 

element.Attribute("URL")為null。 您將需要檢查數據(XML),以了解其原因。 您的代碼采用某種看起來不正確的結構。 仔細觀察傳入的元素。

我看錯了兩件事之一...

object elementnull

要么

elementattribute URL不存在

嘗試類似...

var url = element.Attribute("URL");
string siteURL1;

if(url != null)
{
   siteURL1 = url.Value;
}

XDocument doc = XDocument.Load("C:/Structure.xml");之后,進行一些驗證以確保doc不為空XDocument doc = XDocument.Load("C:/Structure.xml"); 部署后,您是否可以訪問該位置上的XML文件?

還有其他一些可能出錯的地方,下面是一個快速列表:

  1. 您的XML沒有屬性XML。
  2. 您的XML包含您未解析的名稱空間信息
  3. 您的XML根元素不是您所期望的

運行調試並查看要傳遞給Visit方法的元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM