У меня есть класс, который заботится о чтении и хранении 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.