Если у вас есть значения конфигурации, которые используются во многих местах, рассмотрите возможность разработки класса Configuration, который абстрагирует фактическую загрузку элементов конфигурации и предоставляет строго типизированные значения и преобразования и, возможно, значения по умолчанию.
Этот метод локализует доступ к файлу конфигурации, облегчая переключение реализаций позже (скажем, вместо сохранения в реестре) и делает так, что значения должны считываться из файла только один раз - хотя, я надеюсь, что конфигурация Менеджер также будет реализован таким образом и будет читать все значения при первом его использовании и предоставлять их из внутреннего хранилища при последующем доступе. Я думаю, что реальная выгода - это строгая типизация и одноразовые преобразования.
public static class ApplicationConfiguration
{
private static DateTime myEpoch;
public static DateTime Epoch
{
get
{
if (myEpoch == null)
{
string startEpoch = ConfigurationManager.AppSettings["Epoch"];
if (string.IsNullOrEmpty(startEpoch))
{
myEpoch = new DateTime(1970,1,1);
}
else
{
myEpoch = DateTime.Parse(startEpoch);
}
}
return myEpoch;
}
}
}