1. 程式人生 > >C#中的序列化和反序列化問題

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();
            //序列化和反序列化的主要目的是為了方便物件或者類在網路中的傳輸
        }

    }

}