真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C#序列化、反序列化

剛剛碰巧群里有人問這個問題,而之前的博客中并沒有提及,打算弄一篇博客簡單提及一下這個知識點(diǎn)。

作為一家“創(chuàng)意+整合+營銷”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們在業(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、成都網(wǎng)站制作、創(chuàng)意表現(xiàn)、網(wǎng)頁制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營銷運(yùn)營等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營模式與有效的網(wǎng)絡(luò)營銷方法,創(chuàng)造更大的價值。

MSDN文檔中提及了序列化、反序列化的概念,這里引用一下。

序列化:將對象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)男问降倪^程。

反序列化:是序列化的逆過程,就是將流轉(zhuǎn)換為對象的過程。

這兩個過程一起保證數(shù)據(jù)易于傳輸和存儲。

詳細(xì)的請參考:http://msdn.microsoft.com/zh-cn/library/7ay27kt9(v=vs.100).aspx。

下面直接給出完整的代碼,該代碼演示了如何序列化一個對象以及反序列化(還原對象)的過程。

namespace ConsoleApplication1  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            Object student = new Student() { StudentID = "007", StudentName = "guwei4037" };  
  
            string result = ObjectToString(student);  
            Console.WriteLine(result + "\r\n");  
  
            Student newResult = StringToObject(result);  
            Console.WriteLine("ID:{0}, Name:{1}", newResult.StudentID, newResult.StudentName);  
        }  
  
        ///   
        /// 對象轉(zhuǎn)字符串(序列化后轉(zhuǎn)Base64編碼字符串)  
        ///   
        /// 對象  
        /// 字符串  
        public static string ObjectToString(T obj)  
        {  
            using (MemoryStream stream = new MemoryStream())  
            {  
                IFormatter formatter = new BinaryFormatter();  
                formatter.Serialize(stream, obj);  
                stream.Position = 0;  
                byte[] buffer = new byte[stream.Length];  
                stream.Read(buffer, 0, buffer.Length);  
                return Convert.ToBase64String(buffer);  
            }  
        }  
  
        ///   
        /// 字符串轉(zhuǎn)對象(Base64編碼字符串反序列化為對象)  
        ///   
        /// 字符串  
        /// 對象  
        public static T StringToObject(string str)  
        {  
            using (MemoryStream stream = new MemoryStream())  
            {  
                byte[] bytes = Convert.FromBase64String(str);  
                stream.Write(bytes, 0, bytes.Length);  
                stream.Position = 0;  
                IFormatter formatter = new BinaryFormatter();  
                return (T)formatter.Deserialize(stream);  
            }  
        }  
    }  
  
    ///   
    /// 可序列化的類,用Serializable標(biāo)示此類可序列化  
    ///   
    [Serializable]  
    public class Student  
    {  
        public string StudentID { get; set; }  
        public string StudentName { get; set; }  
    }  
}

運(yùn)行結(jié)果截圖:

C# 序列化、反序列化


當(dāng)前文章:C#序列化、反序列化
標(biāo)題來源:http://weahome.cn/article/gisgpc.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部