天天看點

C#中的序列化和反序列化問題

1,簡述:序列化和反序列化主要作用就是友善類檔案在網絡中的傳輸

                  序列化:将對象轉換成為二進制的流檔案

                  反序列化:讀取已經被 序列化的檔案還原成類或者對象

 2:案列

namespace{

 [Serializable]   //對象能夠序列化所必須添加的關鍵字

public class Person 

    {

        public string Name { set; get; }

        public string Age { set; get; }

        public string Gender { set; get; }

        public void SayHello() 

        {

            Console.WriteLine("SayHello");

        }

    }

 class Program

    {

        static void Main(string[] args)

        {

            Person p = new Person();

            p.Name = "張三";

            p.Age = "1";

            p.Gender = "男";

            using(FileStream fs = new FileStream (@"F:\new.txt",FileMode.OpenOrCreate,FileAccess.Write))

            {

                BinaryFormatter bf = new BinaryFormatter();  //序列化必須的一個類

                bf.Serialize(fs,p);   //序列化方法

            }

            Console.WriteLine("序列化:OK");

            //在反序列化

            Person   pp = null;

            using(FileStream fs = new FileStream (@"F:\new.txt",FileMode.OpenOrCreate,FileAccess.Read))

            {

                BinaryFormatter bf = new BinaryFormatter();

                pp = (Person)bf.Deserialize(fs);  //反序列化方法

            }

            Console.WriteLine("name:"+pp.Name+" age:"+pp.Age+" Gender:"+pp.Gender);

            Console.WriteLine("反序列化:OK");

            Console.ReadKey();

            //序列化和反序列化的主要目的是為了友善對象或者類在網絡中的傳輸

        }

    }

}