Сохранение простых пользовательских настроек в Windows Forms с помощью C#

Я пишу свой первый Windows Forms применение с помощью VS 2010 и C#. Он не использует базу данных, но я хотел бы сохранить пользовательские настройки, такие как путь к каталогу и какие флажки установлены. Какой самый простой способ сохранить эти настройки?

5 ответов


Я предлагаю вам использовать встроенные приложения Settings сделать это. здесь статья, говорящая об этом.

пример использования:

MyProject.Properties.Settings.Default.MyProperty = "Something";

вы можете использовать атрибут serializable в сочетании с классом "settings". Для небольшого количества информации, это действительно ваш лучший выбор, так как он прост в реализации. Например:

  [Serializable]
  public class MySettings  
  {
    public const string Extension = ".testInfo";

    [XmlElement]
    public string GUID { get; set; }

    [XmlElement]
    public bool TurnedOn { get; set; }

    [XmlElement]
    public DateTime StartTime { get; set; }

    public void Save(string filePath)
    {
      XmlSerializer serializer = new XmlSerializer(typeof(MySettings));
      TextWriter textWriter = new StreamWriter(filePath);
      serializer.Serialize(textWriter, this);
      textWriter.Close();
    }

    public static MySettings Load(string filePath)
    {
      XmlSerializer serializer = new XmlSerializer(typeof(MySettings));
      TextReader reader = new StreamReader(filePath);
      MySettings data = (MySettings)serializer.Deserialize(reader);
      reader.Close();

      return data;
    }
  }

там вы идете. Вы можете очень многое вырезать и вставить это прямо в код. Просто добавьте свойства по мере необходимости и не забудьте атрибут [XMLElement] в ваших интересных свойствах.

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


Я бы сохранил настройки в XML-файле. Таким образом, пользователю легко делиться своими настройками на машинах и т. д.

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


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

для чтения напишите просто свойства доступа на

Properties.Settings.Default.<your property>

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

Properties.Settings.Default.Reset();
Properties.Settings.Default.Save();

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


Как насчет добавления локального набора данных в ваш проект (затем создайте таблицу настроек) и экспортируйте данные, наконец, в xml-файл, его простой в использовании и более исправимый

enter image description here

1-Добавление столбцов (например, settingName и settingValue) в локальную таблицу (DataTable1) с помощью конструктора, тогда

//data set
 DataSet1 ds = new DataSet1();
 DataSet1.DataTable1DataTable settingsTable = (DataSet1.DataTable1DataTable)ds.Tables[0];
 //add new setting 
 settingsTable.Rows.Add(new string[] { "setting1", "settingvalue1" });
 //export to xml file
 settingsTable.WriteXml("settings.xml");

 //if you want to read ur settings back... read from xml
 settingsTable.ReadXml("settings.xml");