日期:2014-05-18  浏览次数:20880 次

序列化和反序列化XML的问题
我都多个类,需要 序列化和反序列化到一个XML文件.
例如:
有 Student和 Teacher,Worker 三个类,
Student类的实例放在 节点"Students"下;
Teacher类的实例放在 节点"Teachers"下
Worker 类的实例放在 节点"Workers"下


我看了别人都是一个类的LIST序列化和反序列化,我多个怎么办??

------解决方案--------------------
创建一个新类,包含需要序例化的类,然后对此新类进行序列化和反序列化
------解决方案--------------------
采用继承
[XmlInclude(typeof(基类))]
------解决方案--------------------
LZ,你这样做,建一个Person类, 毫不出奇的,你的 Student和 Teacher,Worker 三个类 都可以 继承 人这个父类。 用泛型集合List<Person> lst = new List<Person>
定义一个 路劲 String path = "Person.txt";

序列化时:

//----序列化方法
public void SaveInfo() 
{
//定义文件流
FileStream fs = new FileStream(Path,FileMode.Create);
//二进制方式
BinaryFormatter bf = new BinaryFormatter();
//序列化存储对象
bf.Serialize(fs,lst);
fs.Close();


反序列化时:

//判断文件路径是否存在
if (!File.Exists(Path))
{
return;
}
FileStream fs = new FileStream(Path, FileMode.Open);
BinaryFormatter bf = new BinaryFormatter();
this.lst = bf.Deserialize(fs) as List<Person>;
fs.Close();

这样的话就方便多了。