我试图将名为Process的对象添加到列表中。当我尝试将项添加到列表时,它返回一个空引用异常。 (lijst.Add)
我搜索网络并找到大多数答案:你没有实例化列表。那么它在这里被实例化,所以这段代码可能有什么问题?所有其他变量都正确填充。
这是代码:
private List<Process> CreateProcessFromXml()
{
List<Process> lijst = new List<Process>();
var path = Path.Combine(Server.MapPath("~/App_Data"), "Process.xml");
XDocument process = XDocument.Load(path);
var elementen = XElement.Load(path);
foreach (var element in elementen.Elements("Proces"))
{
lijst.Add(
new Process
{
Naam = element.Element("Naam").Value,
TemplatePath = element.Element("TemplatePath").Value,
OutputPath = element.Element("OutPutPath").Value,
OutputDocumentName = element.Element("OutputDocumentName").Value
});
}
return lijst;
}
流程类:
public class Process
{
public string Naam { get; set; }
public string TemplatePath { get; set; }
public string OutputPath { get; set; }
public string OutputDocumentName { get; set; }
}
例外tekst:
第34行:foreach(elementen.Elements中的var元素(“Proces”))
第35行:{
第36行: lijst.Add(新流程(红色)
第37行:{
第38行:Naam = element.Element(“Naam”)。值,
源文件:xxxxxxxx行:36
堆栈追踪:
[NullReferenceException:对象引用未设置为对象的实例。]
XML: <Proces>
<Naam>
</Naam>
<TemplatePath>
</TemplatePath>
<OutputPath>
</OutputPath>
<OutputDocumentName>
</OutputDocumentName>
</Proces>
提前致谢。
答案 0 :(得分:3)
跟踪错误的更好方法是
foreach (var element in elementen.Elements("Proces"))
{
Process process = new Process();
process.Naam = element.Element("Naam").Value;
process.TemplatePath = element.Element("TemplatePath").Value;
process.OutputPath = element.Element("OutPutPath").Value;
process.OutputDocumentName = element.Element("OutputDocumentName").Value;
lijst.Add(process)
}
并添加一个断点以逐行检查代码
答案 1 :(得分:2)
您的列表已实例化,[fullTextField setActive:NO];
将正常运行。问题出在这里:
[fullTextField setActive:YES]; //if already set to NO
[fullTextField setConstant:100];
检查此代码的每一行,以确保所有操作都返回预期结果。