亚洲天堂一级片-亚洲天堂三区-亚洲天堂久久精品成人-亚洲天堂毛片-久久国产欧美日韩高清专区-久久国产欧美日韩精品免费

通州北大青鳥校區(qū)講解:自定義序列化

通州北大青鳥校區(qū)學(xué)術(shù)部丁老師介紹:如果你希望讓用戶對類進(jìn)行串行化,但是對數(shù)據(jù)流的組織方式不完全滿意,那么可以通過在自定義類中實現(xiàn)接口來自定義串行化行為。這個接口只有一個方法,GetObjectData. 這個方法用于將對類對象進(jìn)行串行化所需要的數(shù)據(jù)填進(jìn)SerializationInfo對象。你使用的格式化器將構(gòu)造SerializationInfo對象,然后在串行化時調(diào)用GetObjectData. 如果類的父類也實現(xiàn)了ISerializable,那么應(yīng)該調(diào)用GetObjectData的父類實現(xiàn)。

如果你實現(xiàn)了ISerializable,那么還必須提供一個具有特定原型的構(gòu)造器,這個構(gòu)造器的參數(shù)列表必須與GetObjectData相同。這個構(gòu)造器應(yīng)該被聲明為私有的或受保護(hù)的,以防止粗心的開發(fā)人員直接使用它。

示例如下:
實現(xiàn)ISerializable的類:
(通州北大青鳥校區(qū))    
 using System;
 using System.Data;
 using System.Configuration;
 using System.Web;
 using System.Web.Security;
 using System.Web.UI;
 using System.Web.UI.WebControls;
 using System.Web.UI.WebControls.WebParts;
 using System.Web.UI.HtmlControls;
 using System.Runtime.Serialization;
 using System.Runtime.Serialization.Formatters.Binary;
  /// <summary>
 /// Employee 的摘要說明
 /// </summary>
 [Serializable]
 public class Employee:ISerializable
  {
     public int EmpId=100;
     public string EmpName="劉德華";
     [NonSerialized]
     public string NoSerialString = "NoSerialString-Test";
     public Employee()
      {
         //
         // TODO: 在此處添加構(gòu)造函數(shù)邏輯
         //
     }
     private Employee(SerializationInfo info, StreamingContext ctxt)
      {
         EmpId = (int)info.GetValue("EmployeeId", typeof(int));
         EmpName = (String)info.GetValue("EmployeeName",typeof(string));
         //NoSerialString = (String)info.GetValue("EmployeeString",typeof(string));
     }
     public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
      {
         info.AddValue("EmployeeId", EmpId);
         info.AddValue("EmployeeName", EmpName);
         //info.AddValue("EmployeeString", NoSerialString);
     }
 }(通州北大青鳥校區(qū)
 

    序列化和反序列化方法:
 public void OtherEmployeeClassTest()
      {
         Employee mp = new Employee();
         mp.EmpId = 10;
         mp.EmpName = "邱楓";
         mp.NoSerialString = "你好呀";
         Stream steam = File.Open("c:\\temp3.dat", FileMode.Create);
         BinaryFormatter bf = new BinaryFormatter();
         Response.Write("Writing Employee Info:");
         bf.Serialize(steam,mp);
         steam.Close();
         mp = null;
         //反序列化
         Stream steam2 = File.Open("c:\\temp3.dat", FileMode.Open);
         BinaryFormatter bf2 = new BinaryFormatter();
         Response.Write("Reading Employee Info:");
         Employee mp2 = (Employee)bf2.Deserialize(steam2);
         steam2.Close();
         Response.Write(mp2.EmpId);
         Response.Write(mp2.EmpName);
         Response.Write(mp2.NoSerialString);
     }
通州北大青鳥校區(qū)學(xué)術(shù)部提供

北大青鳥網(wǎng)上報名
北大青鳥招生簡章
主站蜘蛛池模板: 亚洲韩国欧美 | 国产成人高清精品免费5388密 | 国产又色又爽黄的网站免费 | 亚洲人成网站观看在线播放 | 日韩在线中文字幕 | 亚洲欧美日韩国产专区一区 | 日本黄色官网 | 情侣偷偷看的羞羞视频网站 | 成人毛片免费播放 | 日本理论在线播放 | 国产男女免费完整视频 | 俄罗斯一级毛片免费播放 | 国产精品久久久久久久久久直 | 欧美a在线视频 | 国产精品玖玖 | 国产成人精品日本亚洲专 | 亚洲欧美精品成人久久91 | 亚洲特级毛片 | 美女毛片免费看 | 美日韩一区二区 | 在线中文字幕播放 | 亚洲看片 | 最新69成人精品毛片 | 久久女同互慰一区二区三区 | 亚洲第一成年网 | 日本精品一区二区三区在线 | 黄色片亚洲 | a级国产精品片在线观看 | 美女黄页黄频 | 亚洲欧美一区在线 | 欧美一级久久久久久久大 | 豆国产97在线 | 亚洲 | 91久久国产口精品久久久久 | 一级淫片免费视频 | 在线观看成年人免费视频 | 欧美黄a| 国产欧美日韩三级 | 国产精品情人露脸在线观看 | 国产精品每日更新在线观看 | 久久99视频免费 | 99久久免费看精品国产一区 |