Как в sharpdevelop читать и писать в файл .settings, который лежит в проекте?

442
31 января 2018, 11:33

В Visual Studio есть Properties.Settings.Default и управление пользовательскими настройками прямо из свойств проекта.

В sharpdevelop таких удобств нет, но можно создать файл someName.settings вручную Add -> New item -> Misc -> Settings. Собственно вопрос, как проще всего к нему обратиться, чтобы не изобретать велосипеды. Допустим там у меня объявлена переменная string someVar = "some value". Как ее прочитать, перезаписать и сохранить?

Answer 1

Итак метод научного тыка принес результат. Оказалось, что в 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.

Надеюсь, кому-то будет полезно.

READ ALSO
Не могу взять изображение из pictureBox&#39;a для последующей проверки по пикселю

Не могу взять изображение из pictureBox'a для последующей проверки по пикселю

Не могу понять как правильно в событии MouseDoubleClick взять нарисованое Bitmap изображение и в последствии прогнать по пиксельно и изменить цветПодскажите...

249
Перестал работать SqlDependency

Перестал работать SqlDependency

Пару дней назад данный код работал, сейчас событие OnChange не вызывается при изменении таблицыBroker Enable

198
C# печать уменьшенных изображений в высоком разрешении

C# печать уменьшенных изображений в высоком разрешении

Что нужно: открыть скан А4 (всегда будут использоваться сканы), уменьшить его размеры в 2 раза, разместить на 1/4 листа А4 и поместить результат...

246