首页 > 代码库 > 序列化与反序列化

序列化与反序列化

<1>

http://wenku.baidu.com/view/f15ac821dd36a32d737581e0.html

把对象转换为字节序列的过程称为对象的序列化。     把字节序列恢复为对象的过程称为对象的反序列化。

序列化

序列化

将此类的一个实例序列化为一个文件:
【MyFile.bin  这个文件是把obj对象序列化后持久化存储的文件】

MyObject obj = new MyObject(); 

obj.n1 = 1; 

obj.n2 = 24; 

obj.str = "一些字符串"; 

IFormatter formatter = new BinaryFormatter(); 

Stream MyStream = new FileStream("MyFile.bin", FileMode.Create, 

FileAccess.Write, FileShare.None); 

formatter.Serialize(MyStream, obj); 

stream.Close(); 


反序列化


反序列化

这里说的是将一个MyFile.bin文件通过反序列化,转换成一个obj对象
【filestream 读取这个文件流,然后用.net的序列化器反序列化成对象】

IFormatter formatter = new BinaryFormatter(); 

Stream MyStream = new FileStream("MyFile.bin", FileMode.Open, 

FileAccess.Read, FileShare.Read); 

MyObject obj = (MyObject) formatter.Deserialize(MyStream); 

stream.Close(); 


xml

将此类的实例序列化成一个Xml文件


XmlSerializer ser = new XmlSerializer(obj.GetType());  

ser.Serialize(new FileStream(@"users.xml", FileMode.Create), obj); 


反序列化
 

XmlSerializer serializer = new XmlSerializer(Type.GetType("MyObject"));  

MyObject my=(MyObject)serializer.Deserialize(new FileStream(@"users.xml",FileMode.Open)); 





序列化与反序列化