XmlSerializer, добавление данных в XML и ошибка "файл занят" - C#
Формулировка задачи:
Помогите плз, нужно сделать добавление инф. в XML, что бы предыдущая не затиралась, я написал код, но когда идет запись вылезает ошибка, что фаил уже используется, не могу разобраться...
private void button1_Click(object sender, EventArgs e) { try { Information info = new Information(); info.Data1 = textBox1.Text; info.Data2 = textBox2.Text; SaveXml.SaveData(info, "data.xml"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void Form1_Load_1(object sender, EventArgs e) { using (FileStream read = File.Open("data.xml", FileMode.Open, FileAccess.Read, FileShare.Read)) { XmlSerializer xs = new XmlSerializer(typeof (Information)); Information info = (Information) xs.Deserialize(read); textBox1.Text = info.Data1; textBox2.Text = info.Data2; } }
public class SaveXml { public static void SaveData(object obj, string filename) { File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.Read); XmlSerializer sr = new XmlSerializer(obj.GetType()); TextWriter writer = new StreamWriter(filename); sr.Serialize(writer, obj); writer.Close(); } }
Решение задачи: «XmlSerializer, добавление данных в XML и ошибка "файл занят"»
textual
Листинг программы
dc.date = NewPassWord.GetData(); dc.id = IdBox.Text; dc.pass = PassBox.Text; lock (lockObject) { using (FileStream write = File.Open("data.xml", FileMode.Open, FileAccess.Write)) { XmlSerializer xs = new XmlSerializer(typeof(GenBase)); info.DataContainers.Add(dc); xs.Serialize(write, info); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д