.NET中序列化和持久化(一)

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 22:30 点击:

本人编程道行很浅,只有两三年的道行,所以本文的内容讲的不深入,只供给菜鸟们看看,所以老鸟们不要笑我,欢迎老鸟们指出问题,也欢迎新手们讨论。

我写文章的目的有两个,1是想巩固消化自己所学的内容,2是能和广大的程序猿讨论。

-------------------------------------------------废话分割线-------------------------------------------------

      大家都知道.NET中的对像中存着许多的状态(成员变量),当我们想把对象保存起来,我们就要通过数据库把数值存放起来,下次使用时在从数据库中把数值取出,重新赋值到对像上。开发人员就要编写一大串的机械式的代码,就不能把有效果的时间发在业务上。现在向大家介绍个对像序列化的功能,可以把对像序列化成二进制或soap格式的文件,当下次需要在用该对像的状态就可以直接反序列化该文件,生成对像。

  说了那么多,直接上例子吧。

  [Serializable]    public class MyClass    {        public string Name        {            get;            set;        }        public int Age        {            get;            set;        }    }在对像上加个[Serializable]属性就是告诉编译器该类是可以被序列化的,

对客户端还要使用有命名空间System.Runtime.Serialization.Formatters.Binary中的BinaryFormatter类,将MyClass 的对像序列化成二进制的文件流写入到文件中

客户端例子

            MyClass my = new MyClass();            my.Name = "凤姐";            my.Age = int.MaxValue;            System.Runtime.Serialization.IFormatter formatter = new BinaryFormatter();            //创建一个文件流            Stream stream = new FileStream(@"c:\MyClass.bin", FileMode.Create, FileAccess.Write);            using (stream)            {                //这里就是进行序列化了                formatter.Serialize(stream, my);            }哈哈哈OK了,对像被序列化进去了。当你的程序闭关下次要用的时候就将c:\MyClass.bin的文件反序列化出来就好了,反序列化出来的对像的Nam值还是凤姐,Age值还是int.MaxValue

现在我将介绍如何反序列化

客户端例子

            //不用NEW了反序列化后会给出一个该对像的引用            MyClass my;            System.Runtime.Serialization.IFormatter formatter = new BinaryFormatter();            //打开一个文件流            Stream stream = new FileStream(@"c:\MyClass.bin", FileMode.Open, FileAccess.Read);            using (stream)            {                //这里就是反进行序列化了                my = (MyClass)formatter.Deserialize(stream);         

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • 浅析.NET下XML数据访问新机制
      • asp.net 面试+笔试题目第1/2页
      • C# 邮件地址是否合法的验证
      • asp.net 设置GridView的选中行的实现代码
      • C#高级编程:数据库连接[1]
      • 经典C++程序1
      • IIS 自动回收导致后台定时器失效的问题解决
      • ASP.NET GridView列表代码示例
      • Asp.net MVC源码分析--Action Filter的链式调用
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1