## Serialize and deserialize

   List<Person> list = new List<Person>();
            Person p1 = new Person(); p1.Name = "邓超";            p1.Age = 12;            Person p2 = new Person();p2.Name = "Baby";            p2.Age =22;            Person p3 = new Person();p3.Name = "范冰冰";            p3.Age = 32;            list.Add(p1);            list.Add(p2);            list.Add(p3);    ## 序列化和反序列化    0.内存中数据---->硬盘       手段:IO流                 1.用IO操作文本文件                 2.File Directory 操作文件和目录                 3.使用FileInfo和DirecoryInfo操作文件和目录                 List<Person>                 Person1 :Zhang San|12
            



            



            















                 Person2 Li Si|12
                 Person3 Wang Wu|12
            XML file
                1. Load file  
                2. Get root node
                3. Traverse nodes Node type XmlNode
                List<Person>  
                <Person>
                  <pname></pname>
                </Person>
                 <Person>
                  < pname></pname>
                </Person>
                 <Person>
                  <pname></pname>
                </Person>
    1. Serialization: Save the panorama of the object
                 List<Person>----->Save the object to the hard disk     2. Case: Save the information of 3 people to the hard disk        2.1 Customize a Person         //Feature: Explain that the class can be serialized
                 



        [Serializable]
        public class Person
        {
            public string  Name { get; set; }
            public int Age { get; set; }
        }
       2.2 在Main函数中形成一个集合,保存3个Person实例
         List<Person> list = new List<Person>();
                Person p1 = new Person();
                p1.Name = "邓超";
                p1.Age = 12;
    
                Person p2 = new Person();
                p2.Name = "Baby";
                p2.Age =22;
    
                Person p3 = new Person();
                p3.Name = "范冰冰";
                p3.Age = 32;
    
                list.Add(p1);
                list.Add(p2);
                list.Add(p3);
       2.3 通过二进制序列化器完成工具 
 
      2.4 如何保证类中成员都可以被序列化?
         解析:系统的类型都是默认支持序列化的,例如int和string
         [Serializable]
    [ComVisible(true)]
    public sealed class String : 
    
    [Serializable]
    [ComVisible(true)]
    public struct Int32 : 
    
    
    Type 'Day10_0100序列化.Car' in Assembly(程序集) 'Day10_0100序列化, Version= 1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.
    

3.可以使用序列化手段加密码?
  解析:答案是否定的。序列化是可逆的。 MD5加密算法是不可逆的。
   https://howsecureismypassword.net/
  
4.反序列化
 BinaryFormatter bf = new BinaryFormatter();
            FileStream fs = new FileStream("save.bin",FileMode.Open);
            List<Person> list= (List<Person>)bf.Deserialize(fs);
            foreach (Person item in list)
            {
                Console.WriteLine( item.Name);
            }
            Console.ReadKey();
  

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324638847&siteId=291194637