c#序列化和反序列化

序列化:将对象转换为二进制

反序列化:将二进制转化为对象

作用:传输数据

步骤:

1)将一个类标记为可以被序列化,在Person这个类的上面加上[Serializable]

[Serializable]
    public class Person
    {
        public string Name { get; set; }
        public string Address { get; set; }

    }

序列化完整代码:

internal class Program
    {
        static void Main(string[] args)
        {
            //要将person这对象传输给对方电脑
            Person person = new Person();
            person.Name = "张三";
            person.Address = "中国台湾";
            using(FileStream fs=new FileStream(@"D:\桌面\111.txt",FileMode.OpenOrCreate,FileAccess.Write))
            {
                //开始序列化为对象
                BinaryFormatter bf = new BinaryFormatter();
                bf.Serialize(fs, person);
            }
            Console.WriteLine("序列化成功");
        }
        
       
    }
    [Serializable]
    public class Person
    {
        public string Name { get; set; }
        public string Address { get; set; }

    }

2.反序列化,接受对方发送过来的二进制,反序列化为对象

internal class Program
    {
        static void Main(string[] args)
        {
            //接受对方发送过来的二进制,反序列化为对象
            Person person = new Person();

            using (FileStream fs = new FileStream(@"D:\桌面\111.txt", FileMode.OpenOrCreate, FileAccess.Read))
            {
                //开始反序列化
                BinaryFormatter bf = new BinaryFormatter();
                person = (Person)bf.Deserialize(fs);
            }
            Console.WriteLine(person.Name);
            Console.WriteLine(person.Address);
        }


    }
    [Serializable]
    public class Person
    {
        public string Name { get; set; }
        public string Address { get; set; }

    }

输出结果:

 

posted @ 2022-09-22 10:06  ZerryLuo  阅读(696)  评论(0编辑  收藏  举报