首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行应用时出现"Object reference not set to an object instance“错误

运行应用时出现"Object reference not set to an object instance“错误
EN

Stack Overflow用户
提问于 2012-01-04 06:56:49
回答 4查看 1.5K关注 0票数 0

我有这样一段代码,当用户单击按钮时,它将XML文件的属性加载到字符串变量中:

代码语言:javascript
复制
    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); 
}

但当我部署when部件并单击按钮时,我收到"NullreferenceException未由用户代码处理/对象引用未设置为对象的实例“错误。在以下位置:

代码语言:javascript
复制
  string siteURL1 = element.Attribute("URL").Value;" 

知道我可能做错了什么吗?

这个结构看起来像这样:

代码语言:javascript
复制
<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> 
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-04 06:59:40

我认为有两件事是错的.

object elementnull

elementattribute URL不存在

试试像这样的..。

代码语言:javascript
复制
var url = element.Attribute("URL");
string siteURL1;

if(url != null)
{
   siteURL1 = url.Value;
}
票数 1
EN

Stack Overflow用户

发布于 2012-01-04 06:58:50

element.Attribute("URL")为空。您需要检查您的数据(XML)以了解原因。您的代码假定某个结构似乎不正确。仔细查看传入的元素。

票数 2
EN

Stack Overflow用户

发布于 2012-01-04 07:02:49

进行一些验证,以确保XDocument doc = XDocument.Load("C:/Structure.xml");之后的doc不为空。部署后,您是否有权访问该位置上的XML文件?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8719830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档