【发布时间】:2013-07-23 13:36:00
【问题描述】:
我试过这样的代码.....
//序列化
private void Serialize_Click(object sender, EventArgs e)
{
List<Personal> pdetails = new List<Personal>();
Personal personals = new Personal
{
ID = int.Parse(txtsno.Text),
Name = txtname.Text,
Phone = long.Parse(txtpno.Text),
Address = txtaddr.Text
};
pdetails.Add(personals);
XmlSerializer xmlser = new XmlSerializer(typeof(List<Personal>));
StreamWriter swtr = new StreamWriter(@"f:\serialize.xml");
xmlser.Serialize(swtr, pdetails);
swtr.Close();
}
//反序列化
private void button3_Click(object sender, EventArgs e)
{
XmlSerializer xmlser = new XmlSerializer(typeof(List<Personal>));
StreamReader srdr = new StreamReader(@"f:\serialize.xml");
List<Personal>p = (List<Personal>)xmlser.Deserialize(srdr);
srdr.Close();
}
但我想要动态 xml 序列化和反序列化...
即当我序列化要添加到 xml 文档中的对象时.. 两个或更多输入数据....
但我也输入了创建 xml 文件的详细信息......但我的探针无法将另一个输入数据输入到现有文件本身......
为此,我想使用内存流..如何使用内存流通过单击按钮在 xml 中写入更多输入..
如何反序列化以获取 xml 到对象...
【问题讨论】:
-
我无法理解你的问题。你想要动态序列化吗?将新的
Personal插入到 xml 文件中序列化的现有List<Presonanl>的方法(方法 DynamicInsert(xml_file, PersonalObj))? -
动态序列化意味着,在序列化中,第一次输入详细信息意味着对象正确创建 xml 文件没有问题。第二次输入详细信息意味着它覆盖了我第一次输入的数据。 .. 在反序列化中,我收到这样的错误“XML 文档 (2, 2) 中存在错误。”
-
如果您需要在关闭和打开应用程序后保存数据,我会从我的回答中推荐解决方案 1。否则,您需要说明何时以及为什么要序列化和反序列化数据。
标签: c# .net xml-serialization xml-deserialization