Рекомендации: как хранить настройки в C # (формат / тип)?

Теперь мне любопытно, какие есть возможности хранить / загружать настройки в .net. Например, мне нужно сохранить имя пользователя / пароль для разных баз данных и т. Д., Также мне нужно сохранить некоторые параметры и т. Д.

Моя мысль заключалась в том, чтобы создать класс [Seriazable] и сохранить его в файл ...

Что ты можешь предложить? каковы возможности в .net и т. д.


person Lukas Šalkauskas    schedule 11.02.2009    source источник
comment
Я задал аналогичный вопрос здесь, возможно, ответы помогают ...   -  person spinodal    schedule 14.02.2009


Ответы (5)


Если вы хотите сохранить параметры конфигурации приложения, вы можете использовать «AppSettings» в файле App.Config или Web.Config, в зависимости от того, какое это приложение - Windows или веб-приложение. Я считаю, что синтаксис для чтения значений конфигурации следующий

string configValue = Configuration.AppSettings["ConfigValueName"];

Файл конфигурации будет выглядеть так

<configuration> 
  <appSettings>
    <add key="ConfigValueName" value="ABC"/>
  </appSettings>
</configuration>

Наверное, с множеством других вещей.

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

Вы можете сделать класс сериализуемым и автоматически сериализовать его в XML или двоичный файл, ИЛИ вы можете использовать базу данных SQL. Существует множество технологий .net для доступа к базам данных, просто посмотрите ADO.net, LINQ и Entity Framework.

person TJB    schedule 11.02.2009
comment
Да, это могло быть возможным. - person Lukas Šalkauskas; 11.02.2009

.NET Framework предоставляет некоторые механизмы для хранения и загрузки настроек приложения и / или пользователя. См. "MSDN: Использование настроек в C #" для основы.

Чтобы зашифровать некоторые важные данные в файлах конфигурации, вы также можете использовать некоторые стандартные функции .NET Framework. Краткое введение можно найти на странице «Шифрование информации о конфигурации с помощью защищенной конфигурации "и" Шифрование паролей в файле .NET app.config".

person Alexander    schedule 11.02.2009
comment
Последняя статья, «Шифрование паролей в ...», как раз подходит для того, что мне нужно. Спасибо. +1 - person JMD; 27.03.2009

Что ж, наиболее распространенный способ хранения и загрузки настроек - использовать какие-то XML-данные, и создание класса [Serializable] и вывод сериализованного класса в XML-файл будут работать, но вы должны помнить о следующих вещах:

  1. У вас не будет никакого контроля над входными данными - поскольку XML-файл можно редактировать вне вашего приложения, можно загружать совершенно бессмысленные данные.
  2. Вам нужно иметь разумные значения по умолчанию, когда в XML отсутствуют узлы. Это может быть вызвано ручным редактированием или загрузкой старой версии вашего класса в новую версию.
  3. Я лично очень не решился бы хранить какие-либо пароли в файле конфигурации где угодно, без использования какого-либо алгоритма асимметричного шифрования. Если бы я нашел программу, которая хранила мои пароли в виде обычного текста в XML-файле, я бы прекратил использовать эту программу.
person scwagner    schedule 11.02.2009
comment
Ага, все бы шифровалось, это точно;) - person Lukas Šalkauskas; 11.02.2009

Вы можете использовать файлы ресурсов для менее конфиденциальной информации. Для имен пользователей / паролей вам необходимо использовать зашифрованный текстовый файл или использовать CSP .

person Lonzo    schedule 11.02.2009

Я рекомендую хранить там, где вам нужно, App.Config, файл Ini ... Затем используйте библиотеку Config.Net: Простая в использовании и мощная библиотека конфигурации .NET, полностью покрытая юнит-тесты и тестирование на тысячах серверов и приложений. Нашел в GitHub: https://github.com/aloneguid/config

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

person Gabrielizalo    schedule 25.07.2018