2012-01-31 4 views
3

Я видел, как какой-то парень определял конфигурации (например, ключ, некоторые статические имена и т. Д.) Внутри имен классов Constants, у которых есть const.Класс констант против web.config AppSettings

Я знаю, что это самый элегантный способ использования конфигурационных файлов для такого рода сценариев as described here, но в чем преимущества? Я могу предположить, что производительность должна быть эффективной, даже если она немного.

ответ

6

Преимущества в том, что вы можете изменить это значение во время выполнения, с константами вы можете изменять значения только во время компиляции (это означает, что вам нужно что-то изменить, вам нужно перекомпилировать и повторно развернуть).

Я по-прежнему использую константы и классы «Константы» для внутренних настроек, которые, как я знаю, не будут изменены во время выполнения. Это немного облегчает чтение, анализ и настройку классов конфигурации (ConfigurationManager и т. Д.). Но если есть даже отдаленный шанс, что вы, возможно, захотите внести корректировку во время работы или после развертывания, экономия производительности не стоит лишних хлопот (IMHO).

+0

Последнее предложение - это ключ! – tugberk

3

Преимущество конфигурационных файлов заключается в том, что вы можете изменять значения без компиляции.

Преимущество использования const заключается в том, что невозможно изменить значение. Увеличение производительности незначительно.

2

Скомпилированные жестко заданные значения констант; и если вам нужно изменить их по какой-либо причине в более позднее время, вам придется открыть источник, перекомпилировать, опубликовать.

Текстовая конфигурация (app.config, web.config, настраиваемые файлы конфигурации, база данных) может быть изменена, если потребуется, без необходимости перекомпилировать исходный код приложения. В худшем случае вам придется перезапустить приложение.

Смежные вопросы