Хранение настроек приложения в C#

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

подсказка: я новичок в .net и C#

7 ответов


приложение Настройки параметров широкого применения (не пользовательский) попадают в приложение.config (для настольных приложений) или web.config (для веб-приложений).

шифрование разделов сети.файл конфигурации довольно прост, как указано в Это супер простой пример.

Если вам нужно сохранить пользовательские настройки (например, настройки приложения и т. д.) или общие параметры приложения, не связанные с конфигурацией приложения вы можете использовать файл параметров как описано здесь:

Настройки пользователя в C#


Я не уверен, в какой версии .net / Visual Studio он был представлен, но вы можете щелкнуть правой кнопкой мыши по своему проекту, выбрать " Добавить новый элемент "и выбрать" файл настроек "в окне" Добавить новый элемент". Это предоставляет вашему проекту (по умолчанию)Settings.settings файл, в котором вы можете настроить все параметры, которые хотите предоставить.

Вы можете определить настройки, которые вы создаете, либо приложение или пользователей что означает, что вы можете использовать этот один интерфейс для управления глобальными и пользовательскими настройками. После того как вы создали параметр в настройках.файл настроек с помощью редактора, предоставляемого Visual Studio, вы можете получить к нему доступ в следующем коде:

// Get a Setting value
var valueOfSetting1 = Settings1.Default.Setting1;

// Modify and save a Setting value
Settings1.Default.Setting1 = "New Value";
Settings1.Default.Save();

первый вариант-это реестр. Это легко, но не слишком безопасно для паролей. Другой вариант - использовать созданный файл. Это тоже небезопасно, если вы не хотите реализовать cryption.

следующая опция использует настройки приложения. Это тоже довольно просто, но есть несколько уловов. Во-первых, щелкните правой кнопкой мыши на проекте и выберите Свойства. Там, на вкладке Настройки, вы можете хранить переменные, к которым вы можете получить доступ из своей программы

string password = Properties.Settings.Default.Password

вы также можете изменить их таким же образом, но только если область находится пользователь. Когда область применения широка, VS не позволяет вам изменять эти переменные по какой-то странной причине. Чтобы сохранить изменения, необходимо вызвать Save() следующим образом:

Properties.Settings.Default.Save();

они сохраняются в папке пользовательских данных в разделе C:\Documents и настройки\ 'текущий пользователь' \локальные настройки\данные приложения\

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


Я думаю, что приложение.config (не веб-приложение) или web.конфигурации (веб-приложение).


такие настройки обычно попадают в файлы конфигурации приложений (web.config, app.конфигурация.)

http://www.devasp.net/net/articles/display/679.html

Если вы храните пароли, вам также может потребоваться зашифровать раздел конфигурации в вопрос.

http://msdn.microsoft.com/en-us/library/53tyfkaw.aspx

http://msdn.microsoft.com/en-us/library/ff650304.aspx

Примечание Если вы используете приложение.config, вы увидите, что он переименован ..config, в зависимости от того, создает ли ваш вывод DLL или EXE.


Как и в приведенных выше ответах, app.config или web.config-лучшее место для настроек приложения. Если вам нужен более надежный способ тегов стиля xml для базы данных, параметров сервера и тому подобного, вы можете использовать configurationSection и создавать пользовательские разделы.

http://www.codeproject.com/KB/cs/CustomConfigurationSectio.aspx

для паролей базы данных, как я это делаю, есть зашифрованная строка в значении тега xml и расшифровать, когда читая их, таким образом, вы не раскрываете пароли.


файл конфигурации appsettings, ini-файл( nini), встраиваемая база данных(sqlite, berkelydb/etc..), любой метод, который вам нравится, зависит от вашего размера приложения/производительности и дизайна.