Глобальные константы в отдельном файле.Это хорошая идея? - PullRequest
3 голосов
/ 13 декабря 2010

В настоящее время я работаю над приложением ASP.NET MVC. Я планирую создать статический класс, в котором я планирую хранить все глобальные строковые константы, такие как имена сеансов.

Причина, по которой я не решаюсь, заключается в том, что это своего рода запах, но я не знаю лучшей альтернативы.

Пожалуйста, покажите мне, как определить глобальные константы.

Ответы [ 4 ]

4 голосов
/ 13 декабря 2010

Вадим,

Я делаю именно так, как вы предлагаете, и для этой цели используйте статический класс.Затем вы получаете преимущество строго типизированных аксессоров ПЛЮС - возможность добавлять переопределения (в форме методов), если они вам требуются.

вот фрагмент:

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, но со строгой типизацией в классах для обеспечения проверки ошибок во время выполнения и т. Д., Другие являются чисто статическиминастройки, определенные в классе.

гибкость в выполнении всего вышеперечисленного, что (на мой взгляд) дает этому подходу как привлекательность, так и реальную силу.

1 голос
/ 13 декабря 2010

Другой альтернативой может быть создание файла ресурсов (.resx).Или, если это настраиваемые значения, они могут находиться в файле web.config или в таблице конфигурации базы данных.

0 голосов
/ 13 декабря 2010

Будь то MVC или веб-формы, я использую комбинацию записей базы данных (для настроек сайта, которые можно изменить с помощью панели мониторинга) и web.config appSettings (для настроек сайта, которые меняются не часто или вообще, то есть постоянно) .

0 голосов
/ 13 декабря 2010

Для этой цели вы можете использовать файл global.asax - я бы использовал для них средства доступа, например,

private static int var ;

public static int VAR
{
   get { return var ; }
}
...