6 Stimmen

Prüfen, ob XElement global null ist

Ich habe eine Klasse, die sich um das Lesen und Halten der XML-Datei kümmert. Im Moment sieht eine einfache Version davon so aus:

public class EstEIDPersoConfig
{
    public bool LaunchDebugger { get ; set; }
    public string Password { get; set; }
    public int Slot { get; set; }
    public string Reader { get; set; }
    public string TestInput { get; set; }
    public bool Logging { get; set; }

    public EstEIDPersoConfig()
    {
        XElement xml = XElement.Load(myxml.xml);
        XElement Configuration = xml.Element("Configuration");

        LaunchDebugger = Convert.ToBoolean(Configuration.Element("LaunchDebugger").Value);
        Password = Configuration.Element("Password").Value;
        Slot = Convert.ToInt32(Configuration.Element("Slot").Value);
        Reader = Configuration.Element("Reader").Value;
        TestInput = Configuration.Element("TestInput").Value;
        Logging = Convert.ToBoolean(Configuration.Element("Logging").Value);
     }
 }

Und es wird später noch mehr geben. Das Problem ist also, dass ich, wenn ein Element nicht in xml existiert, folgendes erhalte System.NullReferenceException . Ich muss also prüfen, ob das Element null oder nicht. Hier ist eine Möglichkeit, dies zu tun:

var value = Configuration.Element("LaunchDebugger").Value;
if (value != null)
    LaunchDebugger = Convert.ToBoolean(value);
else
    throw new Exception("LaunchDebugger element missing from xml!");

Aber das für jedes Element zu tun, wäre einfach zu viel. Also brauche ich einige gute Ideen, wie man dieses System zu vereinfachen, so dass es nicht in 1000 Zeilen Code enden würde.

EDIT: Habe den letzten Codeschnipsel bearbeitet, die Idee war nicht, einen Standardwert zu setzen, die Idee war, den Benutzer zu benachrichtigen, dass dieses Element whats null in der Xml fehlt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X