Настраиваем настройки

Место нахождения

В Microsoft Visual Studio есть очень полезная вещь — встроенная поддержка настроек «из коробки». Если нужна настройка в программе — открываем редактор, вводим название, тип и значение по умолчанию. Все. Можно пользоваться. Настройки загружаются, сохраняются, сбрасываются.

В коде можно написать (CoolSetting — название, тип System.Int32):

Settings.Default.CoolSetting = 5;

Типом настройки может быть любой сериализуемый тип. Но вот возникает необходимость добавить список чего-либо, и мы натыкаемся на нежелание редактора работать с generic (List<T> и т.д.).

Исправлять эту несправедливость придется руками. Благо сделать это нужно всего один раз для опции с generic-типом. Нужно добавить настройку указав ей любой доступный тип (например System.String). Затем открыть файл Settings.settings в текстовом редакторе и заменить на нужный нам тип (полностью), треугольные скобочки <> заменяем на &lt; и &gt; соответственно.

Здесь показано где именно нужно менять тип

Теперь можно возвращаться во встроенный редактор настроек, и работать.

Хочется обратить внимание на одну неприятную особенность работы со встроенными настройками. Первое обращение к любой настройке вызовет достаточно серьезный лаг, доходящий до 1000 миллисекунд!!! Следующие обращения будут работать приемлемо быстро. Как правило это время затрачивается при загрузке программы, тем самым удлиняя ее.

  • http://derspinner.com/ derSpinner

    С почином!)

  • justserega

    Что-то оверхэд неприлично большой… Не в курсе с чем он связан?

    • Erty Hackward

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