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

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

Подсказка: Я плохо знаком с .NET и C#

9
задан Rob 30 July 2010 в 12:42
поделиться

7 ответов

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

Шифрование разделов файла web.config довольно просто, как описано в этом Супер простом примере .

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

Пользовательские настройки в C #

12
ответ дан 4 December 2019 в 10:03
поделиться

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

0
ответ дан 4 December 2019 в 10:03
поделиться

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

Вы можете определить настройки, которые вы создадите, как Приложение или Пользователь , что означает, что вы можете использовать этот единый интерфейс для управления глобальными и пользовательскими настройками. После того как вы создали параметр в файле 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();
7
ответ дан 4 December 2019 в 10:03
поделиться

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

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

string password = Properties.Settings.Default.Password

Вы можете изменить их таким же образом, но ТОЛЬКО ЕСЛИ ОБЛАСТЬ ПРИМЕНЕНИЯ УСТАНОВЛЕНА ПОЛЬЗОВАТЕЛЕМ. Если область видимости задана в масштабе всего приложения, VS по какой-то странной причине не позволяет вам изменять эти переменные. Чтобы сохранить изменения, вы должны вызвать Save() следующим образом:

Properties.Settings.Default.Save();

Они сохраняются в папке User Data в C:\Documents and Settings\'Current User'\Local Settings\Application Data\

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

2
ответ дан 4 December 2019 в 10:03
поделиться

Я думаю, app.config (не веб-приложение) или web.config (веб-приложение).

0
ответ дан 4 December 2019 в 10:03
поделиться

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

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

Обратите внимание, если вы используете app.config, вы увидите, что он будет переименован в ..config, в зависимости от того, создается ли DLL или EXE.

0
ответ дан 4 December 2019 в 10:03
поделиться

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

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

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

0
ответ дан 4 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: