Что лучший способ состоит в том, чтобы сохранить пользовательские настройки для приложения.NET?

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

С точки зрения компьютера функция просто адрес памяти, который, если выполняется, выполняет другие инструкции. Таким образом, функция в C сама моделируется как адрес, что, вероятно, приводит к тому, что функция «то же самое», что и адрес, на который он указывает.

59
задан ɢʀᴜɴᴛ 19 July 2017 в 17:52
поделиться

6 ответов

Я люблю использовать встроенное Параметры настройки приложения . Тогда Вы создали в поддержке использования разработчика настроек, если Вы хотите во время проектирования, или во времени выполнения использовать:

// read setting
string setting1 = (string)Settings.Default["MySetting1"];
// save setting
Settings.Default["MySetting2"] = "My Setting Value";

// you can force a save with
Properties.Settings.Default.Save();

Это действительно хранит настройки в подобной структуре папок, как Вы описываете (с версией в пути). Однако с простым вызовом к:

Properties.Settings.Default.Upgrade(); 

приложение втянет все предыдущие настройки версий для сохранения в.

81
ответ дан Ryan Farley 24 November 2019 в 18:25
поделиться

Или запишите свои настройки в xml файле и сохраните его с помощью Изолированное устройство хранения данных . В зависимости от хранилища Вы используете его, сохраняет его в папке Application Data. Можно также выбрать, роуминг включил хранилище, что означает, когда пользователь входит в систему различный компьютер перемещение настроек с ними.

5
ответ дан Lars Truijens 24 November 2019 в 18:25
поделиться

Один подход, который работал на меня в прошлом, должен был создать класс настроек и сериализацию XML использования для записи его в файловую систему. Вы могли расширить это понятие путем создания набора объектов настроек и сериализации его. У Вас были бы все Ваши настройки для всех пользователей в одном месте, не имея необходимость волноваться об управлении файловой системой.

, Прежде чем любой даст мне любой зенитный огонь для того, чтобы частично перестроить колесо, позвольте мне сказать несколько вещей. Для одного это - только несколько строк кода, чтобы сериализировать и записать файл. Во-вторых, если у Вас есть объект, который содержит Ваши настройки, Вы не должны выполнять множественные вызовы к объекту appSettings при загрузке приложения. И наконец, очень легко добавить объекты, которые представляют Ваше состояние приложений, таким образом, позволяя Вам возобновить продолжительную задачу когда загрузки приложения затем.

2
ответ дан Jason Z 24 November 2019 в 18:25
поделиться

Настройки являются стандартными парами "ключ-значение" (строковая строка). Я мог обернуть их в XML-файл, если это помогает.

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

0
ответ дан LeoD 24 November 2019 в 18:25
поделиться

Изолированное устройство хранения данных, прежде всего, используется для приложений, распределенных с помощью ClickOnce, и выполняется в безопасной песочнице. Основной путь решен для Вас, и Вы не будете в состоянии, выводят его в Вашем коде. Путь будет чем-то как "\LocalSettings\ApplicationData\IsolatedStorage\ejwnwe.302\kfiwemqi.owx\url.asdaiojwejoieajae....", не весь настолько дружественный. Ваше пространство памяти также ограничено.

у Ryan Farley есть он правильный .

0
ответ дан Community 24 November 2019 в 18:25
поделиться

Я спустился бы по списку папок, который Вы отправили за исключением версии продукта. Вы не хотите сброс настроек после того, как обновление будет выпущено.

я на самом деле переезжаю от реестра для пользовательских настроек из-за фактора отладки/места. Я в настоящее время только храню несколько основных настроек (размер окна, положение, версия файла данных) в реестре, и я столкнулся с большим количеством проблем, если обновление разлагается, или пользователь теряет второй монитор, и это - то, где приложение открывалось к. Несколько из них являются достаточно здравым смыслом для понимания regedit, но для остальных они должны сделать переустанавливание, которое быстро, но я думаю, что они ворчат немного. С основанной на файле версией все, что я должен был бы сделать, сделали, чтобы они открыли XML-файл в Блокноте и сделали быструю тонкую настройку.

, Кроме того, я надеюсь подавать свою заявку, выполнимую от карты флэш-памяти с интерфейсом USB и набрасывания на настройки, файл кажется намного более дружественным по отношению к тому процессу. Я уверен, что могу сделать некоторый код для проверенного/чистившего реестра, но я думаю, что большинство из нас уже устало от помехи реестра, которая, кажется, съедает наши машины в наше время.

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

0
ответ дан Peter Mortensen 24 November 2019 в 18:25
поделиться