В 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.
Надеюсь, кому-то будет полезно.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей