序列化和反序列化
来源:互联网 发布:linux免费邮件系统 编辑:程序博客网 时间:2024/04/23 15:14
序列化就是把一个对象转换为可以保存的形式,以利于保存和传输。
反序列化就是把这种可保存的形式恢复为内存中的对象。
.net提供了以下两种序列化的方法
1. 二进制序列化
可以保留一个对象的所有的数据,对于应用程序不同调用之间保留对象状态很有用。
二进制序列化 使用BinaryFormatter
例:
GrandPa me = new GrandPa();
//序列化
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("MyFile.txt", FileMode.Create,FileAccess.Write, FileShare.None);
formatter.Serialize(stream, me);
stream.Close();
//反序列化
stream = new FileStream("MyFile.txt", FileMode.Open);
GrandPa ss=(GrandPa) formatter.Deserialize(stream);
stream.Close();
把类对象me序列化,并保存在文件MyFile.txt中,它序列化了对象中的所有字段private public 和 protected,即反序列化后所有的 字段值是不变的。
当然,GrandPa类必须是可序列化的,即,
[Serializable]
public class GrandPa
2. XML序列化
仅序列化公共属性和字段,而且不保留类型信息 ,对不同系统之间的共享数据很有用。
XML序列化 XmlSerializer
例:
MyClass me = new MyClass(24, 1.76); me.Name = "Ralph";
//序列化
XmlSerializer srl = new XmlSerializer(typeof(MyClass));
StreamWriter wrt = new StreamWriter("MyFile.xml");
srl.Serialize(wrt, me);
wrt.Close();
//反序列化
StreamReader rdr = new StreamReader("MyFile.xml");
MyClass notme = (MyClass)srl.Deserialize(rdr);
rdr.Close();
把类对象me序列化,并保存在文件MyFile.xml中,但它与二进制序列化不同的是它只序列化了对象中的public字段,既反序列化后只 有public字段的值是不变的。
- 序列和反序列化
- 序列和反序列化
- 序列化和反序列化
- 序列化和反序列化
- 序列化和反序列化
- c# 序列化和反序列化
- .NET序列化和反序列化
- .net序列化和反序列化
- 序列化和反序列化
- C#序列化和反序列化
- XML序列化和反序列化
- Serializable,序列化和反序列化
- C#序列化和反序列化
- Java序列化和反序列化
- C#序列化和反序列化
- 序列化和反序列化
- c#序列化和反序列化
- XML序列化和反序列化
- Eclipse与tomcat6实现远程调试
- 就要搜 万能搜索
- Java中国象棋博弈程序探秘[5]——搜索算法
- 怎么来培养自己的OO思想
- MTIR网站多线程实时重载技术
- 序列化和反序列化
- ASP.NET2.0中给GridView动态添加模板列并自动绑定数据
- 报org.apache.jasper.servlet.JspServlet类找不到的问题
- Java中国象棋博弈程序探秘[6]——游戏与界面
- AJAX核心代码
- C# 装箱和撤箱
- WebResponse 跨域访问
- classes12.jar和ojdbc.jar的区别
- 最浪费风光的飞行(3图) 乘150个氦气球飞行 妇女儿童最喜欢,但他们可能没胆量