Запись и считывание XML файла

108
31 августа 2021, 19:30

Подскажите, у меня есть форма с textbox'ами, как мне записать данные с них в XML файл, и потом считать данные с файла в один отдельный textbox строкой

Answer 1

Возможно, Вам следует использовать отдельный класс, для хранения значений textBox'ов.

[Serializable] // это нам пригодится для дальнейшей сериализации
public class DataStrings
{
 public string String1 {get;set;} // для textBox1.Text
 public string String2 {get;set;} //для textBox2.Text
}

Экземпляр класс DataString теперь можно использовать для сериализации в Xml. Пример метода сериализации:

public void SerializeThis(object obj, string path)
{
  XmlSerializer formatter = new XmlSerializer(obj.GetType());
  using(var fs = new FileStream("Example.xml", FileMode.OpenOrCreate))
  {
    formatter.Serialize(fs, obj);
  }
}

Теперь Вы можете подумать о десериализации данных из файла, пример:

public DataStrings DeserializeThis(string path)
{
  XmlSerializer formatter = new XmlSerializer(typeof(DataStrings));
  using(var fs = new FileStream("Example.xml", FileMode.OpenOrCreate))
  {
     DataStrings result = (DataStrings)formatter.Deserialize(fs);
  }
  return result;
}

Имея экземпляр класса DataStrings, вы можете использовать его свойства для отображения данных в Ваших textBox'ах. Пример использования:

var exmpl = new DataStrings(){String1 = textBox1.Text, String2 = textBox2.Text};
SerializeThis(exmpl, "Example.xml");
var exmpl_des = DeserializeThis("Example.xml");
textBox1.Text = exmpl_des.String1;
textBox2.Text = exmpl_des.String2;

Для использования классов и атрибута из примера требуется использовать пространство имен System.Xml.Serialization;

READ ALSO
С# Visual Studio Перенос папки из проекта в debug/release

С# Visual Studio Перенос папки из проекта в debug/release

Есть проект с исходным кодом, и папочка Extensions, (она не используется на этапе компиляции, а только после старта приложения) Как мне заставить...

201
Растягивание объекта сверху вниз

Растягивание объекта сверху вниз

Есть объект ПУСТЫШКА в нем есть объект РЕЗИНКА и объект ИГЛАНа РЕЗИНКЕ весит скрипт:

116
Создание таблицы c TextBox

Создание таблицы c TextBox

Подскажите как реализовать данную таблицу, каким инструментом воспользоваться лучше, а то на данный я на этипе TaybleLayout и TextBox?

355
Как передеать в метод значение переменной, а не ссылку в памяти

Как передеать в метод значение переменной, а не ссылку в памяти

Я в цикле генерирую карту состоящий из кнопок, каждой из них надо создать уникальный ListenerГенератор карты:

245