Вадим,
Я делаю именно так, как вы предлагаете, и для этой цели используйте статический класс.Затем вы получаете преимущество строго типизированных аксессоров ПЛЮС - возможность добавлять переопределения (в форме методов), если они вам требуются.
вот фрагмент:
public static class Config
{
private const string NotSet = "**VALUE NOT SET**";
private const int pageSize = 5;
public static string CustomCache
{
get
{
return ConfigurationManager.AppSettings["CustomCache"] ?? NotSet;
}
}
public static int PageSize
{
get
{
// simple default - no setter
return pageSize;
}
}
}
типичное использование:
items = _repository.GetPaged(pageNumber, Config.PageSize)
в вышеприведенном классе, некоторые настройки называются «2-е поколение» из настроек приложения в web.config, но со строгой типизацией в классах для обеспечения проверки ошибок во время выполнения и т. Д., Другие являются чисто статическиминастройки, определенные в классе.
гибкость в выполнении всего вышеперечисленного, что (на мой взгляд) дает этому подходу как привлекательность, так и реальную силу.