Сохранение строки в properties.settings - PullRequest
0 голосов
/ 26 марта 2011

Я создаю проект в VS2010, используя c #, у меня есть строковое значение, которое я сейчас записываю в Properties.settings проекта.

Я однажды заметил, что при выключении и перезагрузке компьютера значение выглядит так, как будто оно не сохраняется?

другая возможность заключается в том, что когда я передаю свой код в SVN, возможно, это значение не было написано.

Так может кто-нибудь, пожалуйста, подтвердите мне,

когда я записываю строковое значение в Properties.Settings, это только временно? мне придется в итоге записать его в текстовый файл или что-то в этом роде?

Пожалуйста, и информация относительно этого будет принята с благодарностью.

Спасибо за продвижение;)

Ответы [ 3 ]

1 голос
/ 26 марта 2011

Это область применения или область применения пользователя?Настройки области приложения нельзя изменить во время выполнения.

Вы вызываете Settings.Save (), чтобы сохранить настройки?

См. Эту статью MSDN для получения дополнительной информации: Использование настроек в C #

0 голосов
/ 26 марта 2011

Они навсегда сохраняются, если вы звоните Properties.Settings.Default.Save();

Вот некоторый код, который я использую, чтобы запомнить положение и размер окна:

<Window x:Class="my_namespace.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:my_namespace"
    Closing="save_position"
    Height="{Binding Source={x:Static local:Properties.Settings.Default}, Path=height, Mode=TwoWay}" 
    Width="{Binding Source={x:Static local:Properties.Settings.Default}, Path=width, Mode=TwoWay}" 
    Top="{Binding Source={x:Static local:Properties.Settings.Default}, Path=top, Mode=TwoWay}"
    Left="{Binding Source={x:Static local:Properties.Settings.Default}, Path=left, Mode=TwoWay}">

С этим в коде позади:

private void save_position(object sender, CancelEventArgs e)
{
    Properties.Settings.Default.Save();            
}
0 голосов
/ 26 марта 2011
  • Настройки хранятся на диске, хотя путь предсказать сложно, потому что .NET Framework управляет им. Пример пути, в котором сохраняются свойства области пользователя:

d: \ Users \ Robo \ AppData \ Local \ DataCrea \ WorkShifts.exe_Url_4ssvgihryk04nltgkxam4dh4bdhymcqa \ 0.9.28.0 \ user.config

  • Свойства должны сохраняться каждый раз после команды:

    Properties.Settings.Default.Save ();

  • Я не уверен, может ли следующая вещь повлиять на вашу проблему, но хорошо бы добавить логическое свойство CallUpgrade = True. Затем добавьте следующие строки в ваш главный конструктор:

        //upgrade properties, if version was increased
        if (Settings.Default.CallUpgrade)
        {
            Settings.Default.Upgrade();
            Settings.Default.CallUpgrade = false;
            Settings.Default.Save();
        }
    

... Upgrade () обеспечит корректную миграцию настроек из предыдущей версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...