सूची में ऑब्जेक्ट लिखना मेरे पास एक तरीका है जो form_load ईवेंट पर निष्पादित करता है जो ठीक से एक पंक्ति को छोड़कर काम करता है।नेस्टेड फोरैच लूप पढ़ने .xml और
private int ReadInPeople()
{
XmlNodeList nodeList = m_xmlDoc.DocumentElement.ChildNodes;
foreach (XmlNode PersonNode in nodeList)
{
Employee ccontact = new Employee();
foreach (XmlNode PersonTag in PersonNode.ChildNodes)
{
switch (PersonTag.Name)
{
case "Employee":
ccontact.EmployeeNumber = PersonTag.FirstChild.Value;
break;
case "FirstName":
ccontact.FirstName = PersonTag.FirstChild.Value;
break;
case "LastName":
ccontact.LastName = PersonTag.FirstChild.Value;
break;
default:
break;
}
}
this.AddContact(ccontact);
}
return nodeList.Count;
}
AddContact विधि कर्मचारी ऑब्जेक्ट को स्थिर सूची में जोड़ती है; हालांकि, रेखा:
this.AddContact(ccontact);
निष्पादित नहीं किया जा रहा था।
एक्सएमएल फ़ाइल का एक नमूना:
<?xml version="1.0" encoding="utf-8"?>
<people>
<person>
<Employee>123456789</Employee>
<FirstName>John</FirstName>
<LastName>Smith</LastName>
</person>
<person>
<Employee>987654321</Employee>
<FirstName>Ellen</FirstName>
<LastName>Wayne</LastName>
</person>
</people>
मैं एक ब्रेकपाइंट और डीबगिंग, और यकीन है कि पर्याप्त स्थापित करने की कोशिश की थी, लाइन पूरी तरह से खत्म हो गया छोड़ दिया गया जैसे कि वह वहाँ भी नहीं थे।
एलन की सलाह के अनुसार, मैंने PersonTag.FirstChild.Value को बदल दिया क्योंकि यह एक चाइल्ड नोड का संदर्भ देने का प्रयास कर रहा था जो अस्तित्व में नहीं था।
अद्यतन, काम कर रहे विधि:
private int ReadInPeople()
{
XmlNodeList nodeList = m_xmlDoc.DocumentElement.ChildNodes;
foreach (XmlNode PersonNode in nodeList)
{
Employee ccontact = new Employee();
foreach (XmlNode PersonTag in PersonNode.ChildNodes)
{
switch (PersonTag.Name)
{
case "Employee":
ccontact.EmployeeNumber = PersonTag.InnerText;
break;
case "FirstName":
ccontact.FirstName = PersonTag.InnerText;
break;
case "LastName":
ccontact.LastName = PersonTag.InnerText;
break;
default:
break;
}
}
this.AddContact(ccontact);
}
return nodeList.Count;
}
'AddContact' एक' System.Diagnostics.ConditionalAttribute' के साथ चिह्नित विधि है? – eulerfx
@eulerfx - ऐसा नहीं है कि मुझे पता है - क्या सत्यापित करने का कोई तरीका है? – tloveless
उस विधि की परिभाषा पर जाएं और देखें कि यह उस विशेषता के साथ चिह्नित है या नहीं। – eulerfx