【发布时间】:2015-10-08 22:56:43
【问题描述】:
我正在尝试制作一个应用程序,允许人们注册他们的信息,以便雇主可以阅读并联系他们。
问题是每当我尝试反序列化信息时,要么只得到一个对象,要么程序抛出异常。
private void button1_Click(object sender, EventArgs e)
{
FileStream sw = new FileStream("Applicants.xml",FileMode.Append,FileAccess.Write,FileShare.None);
XmlSerializer xs = new XmlSerializer(typeof(Class1), new XmlRootAttribute("Applist"));
Class1 cc = new Class1();
cc.name = textBox1.Text;
cc.age = textBox2.Text;
cc.degree = textBox3.Text;
cc.salary = textBox4.Text;
cc.no = textBox5.Text;
c.Add(cc);
xs.Serialize(sw,cc);
this.Hide();
}
我应该如何序列化和反序列化所有创建的对象? 第一类:
public class Class1
{
public String name;
public String age;
public String degree;
public String no;
public String salary;
}
反序列化代码:
private void linkLabel1_LinkClicked_1(object sender, LinkLabelLinkClickedEventArgs e)
{
List<Class1> c2 = new List<Class1>();
XmlSerializer xml = new XmlSerializer(typeof(List<Class1>));
FileStream fs = new FileStream("Applicants.xml",FileMode.Open);
c2 = (List<Class1>)xml.Deserialize(fs);
label3.Text = ; //don't know what t write here
}
【问题讨论】:
-
什么是 c ?列表
? -
c 是包含字段(姓名、年龄、学位、薪水)的 class1 列表
-
看来你序列化的是cc而不是c。所以你只会得到 cc,而不是 c 列表
-
如果我序列化 c ,它会抛出异常(错误生成 xml 文档)
-
您需要:1. 显示
Class1的完整定义,2. 显示您用于反序列化 XML 的代码,以及 3. 详细说明您遇到的异常。
标签: c# .net xml serialization deserialization