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);
                }
 
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы