В Visual Studio есть Properties.Settings.Default
и управление пользовательскими настройками прямо из свойств проекта.
В sharpdevelop таких удобств нет, но можно создать файл someName.settings
вручную Add -> New item -> Misc -> Settings
. Собственно вопрос, как проще всего к нему обратиться, чтобы не изобретать велосипеды. Допустим там у меня объявлена переменная string someVar = "some value"
. Как ее прочитать, перезаписать и сохранить?
Итак метод научного тыка принес результат. Оказалось, что в sharpdevelop файл anyname.settings это просто удобный интерфейс для добавления хранимых параметров (такой же как в окне свойств проекта visual studio), причем их (таких файлов) может быть много.
Так при создании файлов foo.settings
и bar.settings
в проекте testapp
и заведении туда переменных bar и foo соответственно в app.config
появляются новые ветки, которые выглядят так:
<userSettings>
<testapp.foo>
<setting name="bar" serializeAs="String">
<value>barValue</value>
</setting>
</testapp.foo>
<testapp.bar>
<setting name="foo" serializeAs="String">
<value>fooValue</value>
</setting>
</testapp.bar>
</userSettings>
И теперь в коде можно делать так:
void MainFormLoad(object sender, EventArgs e)
{
//читаем значение
string barVal = foo.Default.bar; // barValue
//или так
barVal = foo.Default.Properties["bar"].ToString(); // barValue
//меняем значение
foo.Default.bar = "New bar value";
//сохраняем параметры в реестр (будут доступны при следующих запусках приложения)
foo.Default.Save();
//опять читаем
barVal = foo.Default.bar; // New bar value
//получаем значение по умолчанию
barVal = foo.Default.Properties["bar"].DefaultValue.ToString(); // barValue
}
Все то же самое справедливо для второй ветки:
string fooVal = bar.Default.foo; // fooValue
Кстати, после компиляции все из app.config
проекта, в том числе дефолтные значения наших параметров попадает в testapp.exe.config
который должен лежать по умолчанию в одной папке со скомпилированным testapp.exe
.
Надеюсь, кому-то будет полезно.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Не могу понять как правильно в событии MouseDoubleClick взять нарисованое Bitmap изображение и в последствии прогнать по пиксельно и изменить цветПодскажите...
Пару дней назад данный код работал, сейчас событие OnChange не вызывается при изменении таблицыBroker Enable
Что нужно: открыть скан А4 (всегда будут использоваться сканы), уменьшить его размеры в 2 раза, разместить на 1/4 листа А4 и поместить результат...