Сохранение простых пользовательских настроек в 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();
Как насчет добавления локального набора данных в ваш проект (затем создайте таблицу настроек) и экспортируйте данные, наконец, в xml-файл, его простой в использовании и более исправимый
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");