C#之数据序列化

来源:互联网 发布:19级研究所升级数据 编辑:程序博客网 时间:2024/05/01 01:45
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Runtime.Serialization.Formatters.Binary;using System.IO;namespace SerializeDemo{    //定义一个可以序列化的类 Serializable:表明当前类可以序列化    [Serializable]    class Program    {        public string name;        public string id;        public string sex;        public int age;        Program()        {            this.name = "rose_girls";            this.id = "32226";            this.sex = "girl";            this.age = 24;        }        static void Main(string[] args)        {            Program pro = new Program();            //MemoryStream:System.IO 内存流            using (MemoryStream stream = new MemoryStream())            {                Console.WriteLine(" before stream cap " + stream.Capacity + " lenght " + stream.Length);                //以二进制格式将对象或整个连接对象图形序列化和反序列化                BinaryFormatter bf = new BinaryFormatter();                                //序列化                //Serialize:将对象pro图形序列化到stream流中                bf.Serialize(stream, pro);                //将当前流中的位置设置为指定值  这里就是把SeekOrigin.Begin设置为0                stream.Seek(0, SeekOrigin.Begin);                Console.WriteLine(" after stream cap " + stream.Capacity + " lenght " + stream.Length);                //反序列化                Program dePro = (Program)bf.Deserialize(stream);                Console.WriteLine("反序列化结果");                Console.WriteLine("name = " + dePro.name + "  id = " + dePro.id + " sex = " + dePro.sex + " age=" + dePro.age);                Console.ReadKey();            }        }    }}

0 0