通州北大青鳥校區(qū):使用BinaryFormatter進(jìn)行串行化

      通州北大青鳥校區(qū)學(xué)術(shù)部丁老師提供:
      序列化又稱串行化,是.NET運(yùn)行時(shí)環(huán)境用來支持用戶定義類型的流化的機(jī)制。其目的是以某種存儲形成使自定義對象持久化,或者將這種對象從一個地方傳輸?shù)搅硪粋地方。

      .NET框架提供了兩種串行化的方式:1、是使用BinaryFormatter進(jìn)行串行化;2、使用SoapFormatter進(jìn)行串行化;3、使用XmlSerializer進(jìn)行串行化。第一種方式提供了一個簡單的二進(jìn)制數(shù)據(jù)流以及某些附加的類型信息,而第二種將數(shù)據(jù)流格式化為XML存儲;第三種其實(shí)和第二種差不多也是XML的格式存儲,只不過比第二種的XML格式要簡化很多(去掉了SOAP特有的額外信息)。

      可以使用[Serializable]屬性將類標(biāo)志為可序列化的。如果某個類的元素不想被序列化,1、2可以使用[NonSerialized]屬性來標(biāo)志,2、可以使用[XmlIgnore]來標(biāo)志。

      1、使用BinaryFormatter進(jìn)行串行化
      下面是一個可串行化的類:

      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.IO;
       using System.Runtime.Serialization.Formatters.Binary;
        ///


       /// ClassToSerialize 的摘要說明
       ///

       [Serializable]
       public class ClassToSerialize
        {
           public int id = 100;
           public string name = "Name";
           [NonSerialized]
           public string Sex = "男";
       }
       (通州北大青鳥校區(qū)

      下面是串行化和反串行化的方法:
          
       public void SerializeNow()
            {
               ClassToSerialize c = new ClassToSerialize();
               FileStream fileStream = new FileStream("c:\\temp.dat", FileMode.Create);
               BinaryFormatter b = new BinaryFormatter();
               b.Serialize(fileStream, c);
               fileStream.Close();
           }
           public void DeSerializeNow()
            {
               ClassToSerialize c = new ClassToSerialize();
               c.Sex = "kkkk";
               FileStream fileStream = new FileStream("c:\\temp.dat", FileMode.Open, FileAccess.Read, FileShare.Read);
               BinaryFormatter b = new BinaryFormatter();
               c = b.Deserialize(fileStream) as ClassToSerialize;
                Response.Write(c.name);
               Response.Write(c.Sex);
               fileStream.Close();
           }

      調(diào)用上述兩個方法就可以看到串行化的結(jié)果:Sex屬性因?yàn)楸粯?biāo)志為[NonSerialized],故其值總是為null。

      通州北大青鳥校區(qū),未完待續(xù)


       

      北大青鳥網(wǎng)上報(bào)名
      北大青鳥招生簡章
      主站蜘蛛池模板: 在线视频一区二区| 亚洲日韩国产欧美一区二区三区 | 精品国产天堂综合一区在线| 中文国产成人精品久久一区| 国产大秀视频一区二区三区| 无码人妻精品一区二区三区在线| 日本在线观看一区二区三区| 亚洲国产精品一区二区久| 久久国产精品亚洲一区二区| 国产一区二区精品尤物| 加勒比精品久久一区二区三区| 91在线看片一区国产| 91视频一区二区| 亚洲国产一区二区a毛片| 综合人妻久久一区二区精品| 一区二区三区四区无限乱码| 日韩在线一区二区三区视频| 韩国一区二区三区| 日韩视频一区二区| 青娱乐国产官网极品一区| 国产成人av一区二区三区不卡| 亚洲sm另类一区二区三区| 国产精品一区二区毛卡片| 精品一区二区三区| 精品理论片一区二区三区| 日本精品夜色视频一区二区| 搜日本一区二区三区免费高清视频| 日韩精品久久一区二区三区 | 中文字幕一区二区三区视频在线| 视频一区二区三区免费观看 | 日韩精品一区二区亚洲AV观看| 无码精品视频一区二区三区| 亚洲福利一区二区精品秒拍| 亚洲欧美成人一区二区三区| 丰满爆乳无码一区二区三区 | 竹菊影视欧美日韩一区二区三区四区五区| 人妻夜夜爽天天爽爽一区| 无码人妻精品一区二区三区99性| 人妻精品无码一区二区三区 | 精品一区二区三区电影| 国产免费播放一区二区|