Проверить, является ли XElement глобальным нулевым

У меня есть класс, который заботится о чтении и хранении XML-файла. Сейчас его простая версия выглядит так:

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);
     }
 }

И будет больше позже. поэтому проблема в том, что если какой-то элемент не существует в xml, я получаю System.NullReferenceException . Поэтому мне нужно проверить, является ли элемент нулевым или нет. Вот один из способов сделать это:

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

Но делать это для каждого элемента было бы слишком много. Так что мне нужны хорошие идеи, как упростить эту систему, чтобы она не превратилась в 1000 строк кода.

РЕДАКТИРОВАТЬ: Отредактировал последний фрагмент кода, идея заключалась не в том, чтобы устанавливать значение по умолчанию, идея заключалась в том, чтобы уведомить пользователя о том, что этот элемент, который имеет значение null, отсутствует в xml.

5
задан Cœur 1 December 2018 в 15:36
поделиться