打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#中怎样实现序列化和反序列化
 
 

我们想要将数据进行持久化的操作的话,也就是将数据写入到文件中,我们在C#中可以通过IO流来操作,同时也可以通过序列化来操作,本人是比较推荐使用序列化操作的

因为我们如果想要将一个对象持久化到文件中 如果我们使用IO流文件流操作的话可能就没办法实现了,但是我们用序列化的话就可以轻而易举的实现,并且当我们回拿到数据的

时候,我们拿到的也是一个对象,但是它保存到文件中是二进制文件

具体实现步骤如下

首先我们有一个实体对象  并且这个类是可支持序列化操作的  也就是挂载有[Serializable]标记


 //说明该类可以被序列化    [Serializable]   public class Peoson    {        private int age;        private string name;        public int Age        {            get { return age; }            set { age = value; }        }        public string Name        {            get { return name; }            set { name = value; }        }        public Peoson() { }        public Peoson(string name,int age) {            this.age = age;            this.name = name;        }        public void say() {            Console.WriteLine("名字:{0},年龄{1}",name,age);        }    }

然后我们在Main函数中准备一个集合,并将上面创建的类作为集合的属性,为其添加数据,直接对该集合进行序列化操作和反序列化操作


static void Main(string[] args)        {            //准备集合并为其添加数据            List<Peoson> list = new List<Peoson>();            Peoson p1 = new Peoson("小黄", 18);            Peoson p2 = new Peoson("小白", 28);            Peoson p3 = new Peoson("小青", 15);                       list.Add(p1);            list.Add(p2);            list.Add(p3);            //序列化            SerializeMethod(list);            //反序列化          List<Peoson> list2=  ReserializeMethod();//调用反序列化的方法  其方法返回值是一个List集合          foreach (Peoson item in list2)//遍历集合中的元素          {              item.say();          }          Console.ReadKey();        }        //序列化操作        public static void SerializeMethod(List<Peoson> list) {            using (FileStream fs=new FileStream("序列化.btn",FileMode.Create))            {                BinaryFormatter bf = new BinaryFormatter();                bf.Serialize(fs,list);                Console.WriteLine("序列化成功!");           }        }        //反序列化操作        public static List<Peoson> ReserializeMethod()        {             using(FileStream fs=new FileStream("序列化.btn",FileMode.Open)){                BinaryFormatter bf = new BinaryFormatter();                List<Peoson> list = (List<Peoson>)bf.Deserialize(fs);                return list;            }        }    }

以上我们就对集合数据完成了序列化和反序列化的操作了

 
 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
对象序列化之XMLSerialization
C# 二进制BinaryFormatter进行序列化与反序列化
将数据结构类型序列化和反序列化(BinaryFormatter类)
C# 序列化(Serialize)与反序列化(Deserialize)
【新提醒】【分享序列化脚本~~备忘随时拿来用~】
关于BinaryFormatter
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服