• C#二进制序列化


    使用二进制序列化和反序列化实体类

    static void Main(string[] args)
            {
                List<Person> persons = new List<Person>();
                Person p1 = new Person("chen", 24);
                Person p2 = new Person("li", 23);
                persons.Add(p1);
                persons.Add(p2);
    
                xuliehua(persons); //调用静态序列化方法
                fanxuliehua();       //调用静态反序列化方法
    
                Console.ReadKey();
            }
    
    public static void xuliehua(List<Person> persons)//序列化方法
            {
                FileStream fs = new FileStream("Person.txt", FileMode.Create);//创建一个文件流,对文件进行写入
                BinaryFormatter bf = new BinaryFormatter();//使用CLR二进制格式器
                bf.Serialize(fs, persons); //序列化到硬盘
                fs.Close();//关闭文件流
            }
    
    public static void fanxuliehua()//反序列化方法
            {
                FileStream fs = new FileStream("Person.txt", FileMode.Open);//打开流文件
                BinaryFormatter bf = new BinaryFormatter();
                List<Person> persons = bf.Deserialize(fs) as List<Person>;//从硬盘反序列化  
    
                //或  Person p=(Person)bf.Deserialize(fs); 对应上面的或者
    
                fs.Close();//关闭文件流
                for (int i = 0; i < persons.Count; i++)
                {
                    persons[i].say();
                }
            }

    新建一个Person类:

      [Serializable] 
        class Person
        {
            private string name;
            public string Name
            {
                get { return name; }
                set { name = value; }
            }
    
            [NonSerialized]   //age这个字段不序列化
            private int age;
            public int Age
            {
                get { return age; }
                set { age = value; }
            }
    
            public Person() { }
            public Person(string name, int age)
            {
                this.name = name;
                this.age = age;
            }
    
            public void say()
            {
                Console.WriteLine("hello,my name is {0} ,I am {1} years old.", name, age);
            } 
        }

    运行结果为:

     

  • 相关阅读:
    ios属性或者变量的前缀-杂记
    xcode注释方法
    ios 不同的数据类型转化为json类型
    第一部分----HTML的基本结构与基本标签
    Git使用总结
    c#后台弹出框
    svn下载安装
    svn配置
    access 日期转换
    C# 中关于汉字与16进制转换的代码
  • 原文地址:https://www.cnblogs.com/jiangshuai52511/p/7889809.html
Copyright © 2020-2023  润新知