对象引用未设置为对象的实例;运行应用程序时出错
本文关键字:运行 应用程序 出错 实例 设置 对象 对象引用 | 更新日期: 2023-09-27 18:19:17
我有这段代码,它应该在用户单击按钮时将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);
}
但是当我部署web部件,并单击按钮时,我得到"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")
为空。您需要检查您的数据(XML)以了解原因。您的代码假定了某种似乎不正确的结构。仔细查看传入的元素
我认为有两件事是错的…
object
element
是null
或
element
的attribute
URL不存在
试试…
var url = element.Attribute("URL");
string siteURL1;
if(url != null)
{
siteURL1 = url.Value;
}
做一些验证以确保doc
在XDocument doc = XDocument.Load("C:/Structure.xml");
之后不为空。在部署之后,您可以访问该位置上的XML文件吗?
还有一些其他的事情可能是错误的,这里是一个快速列表:
- 你的XML没有XML属性
- 您的XML包含未解析的名称空间信息
- 你的XML根元素不是你想要的
运行调试并查看要传递给Visit方法的元素