对象的序列化和反序列化
今天突然看到这个话题.找了下资料,个人理解如下: 对象序列化:把一个对象存为文件,格式不定. 反序列化:把文件还原成一个对象. 序列化方法: public static void SerializeObject(string fileName, object obj) Stream st = new FileStream(fileName, FileMode.Create); serialize.Serialize(st, obj); } 反序列化方法: public static object DeSerializeObject(string fileName, Type type) 这两个方法都是通过把对象存为二进制数据,再转出来,这种情况下,直接打开文件是乱码的. 我看到还有一种: 序列化: Stream writer = null; writer = new FileStream(fileName, FileMode.Create); 反序列化: if (!File.Exists(fileName)) FileStream fs = null; XmlSerializer xSer = new XmlSerializer(type); if (fs != null) 这种就不是存的二进制了,可以直接打开文件并查看数据,现在还不知道用那一种好, 关于序列化的好处,也尚未理解透彻~~ 补充,被序列化的类,在类前面要加[Serializable()],表示它是可以被序列化的,不然会抛导异常,不过当用XML那个序列化的时候又不必加,哎...怪事. |