nullreferenzexception in foreach schleife


#1
hallo,
wenn ich einer liste via foreach schleife einträge hinzufügen möchte bekomme ich eine nullreferenzexpection obwohl die liste nicht null ist. woran kann das liegen?

Code:
                    List<mod> mods = new List<mod>();
                    foreach(XmlNode Mod in weaponMod.ChildNodes)
                    {
                        mods.Add(new mod { id2name(Mod.ChildNodes[0].InnerText), 
                                           int.TryParse(Mod.ChildNodes[4].InnerText, out o),
                                           int.TryParse(Mod.ChildNodes[15].InnerText, out o),
                                           int.TryParse(Mod.ChildNodes[17].InnerText, out o), 
                                           Mod.ChildNodes[18].InnerText, 
                                           Mod.ChildNodes[19].InnerText, 
                                           Mod.ChildNodes[20].InnerText, 
                                           Mod.ChildNodes[21].InnerText, 
                                           Mod.ChildNodes[22].InnerText, 
                                           int.TryParse(Mod.ChildNodes[23].InnerText, out o), 
                                           int.TryParse(Mod.ChildNodes[24].InnerText, out o), 
                                           Mod.ChildNodes[27].InnerText, 
                                           int.TryParse(Mod.ChildNodes[32].InnerText, out o)
                        });
                    }
 

Spyke

Capoeirista
Premium-User
#2
mach ein Try{}Catch{} um mods.Add und setzt im catch ein Breakpoint

eventuell bekommst du im StackTrace der Exception schon die genaue Fehlerzeile,
ansosnten schau dir dann im debug Modus die einzelnen Werte an, die du für die Erstellung von mod weitergeben willst

Und ich geh mal von aus deine ChildNodes sind vom Typ XmlNodeList, wenn dort ein ungültiger Index angegeben wird, wird null zurück gegeben.
(Damit würde der Zugriff auf InnerText NullReferenceException schmeißen)

Nachtrag:
Sollen die geschweiften Klammern bei new mod so sein?
Da ich jetzt nicht seh das dort eine Eigenschaft von mod gesetzt wird,
sollte eventuell der konstruktor (in Rundenklammern) aufgerufen werden???