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