剛剛碰巧群里有人問(wèn)這個(gè)問(wèn)題,而之前的博客中并沒(méi)有提及,打算弄一篇博客簡(jiǎn)單提及一下這個(gè)知識(shí)點(diǎn)。
作為一家“創(chuàng)意+整合+營(yíng)銷(xiāo)”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們?cè)跇I(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、成都網(wǎng)站制作、創(chuàng)意表現(xiàn)、網(wǎng)頁(yè)制作、系統(tǒng)開(kāi)發(fā)以及后續(xù)網(wǎng)站營(yíng)銷(xiāo)運(yùn)營(yíng)等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營(yíng)模式與有效的網(wǎng)絡(luò)營(yíng)銷(xiāo)方法,創(chuàng)造更大的價(jià)值。
MSDN文檔中提及了序列化、反序列化的概念,這里引用一下。
序列化:將對(duì)象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)男问降倪^(guò)程。
反序列化:是序列化的逆過(guò)程,就是將流轉(zhuǎn)換為對(duì)象的過(guò)程。
這兩個(gè)過(guò)程一起保證數(shù)據(jù)易于傳輸和存儲(chǔ)。
詳細(xì)的請(qǐng)參考:http://msdn.microsoft.com/zh-cn/library/7ay27kt9(v=vs.100).aspx。
下面直接給出完整的代碼,該代碼演示了如何序列化一個(gè)對(duì)象以及反序列化(還原對(duì)象)的過(guò)程。
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Object student = new Student() { StudentID = "007", StudentName = "guwei4037" }; string result = ObjectToString<Object>(student); Console.WriteLine(result + "\r\n"); Student newResult = StringToObject<Student>(result); Console.WriteLine("ID:{0}, Name:{1}", newResult.StudentID, newResult.StudentName); } /// <summary> /// 對(duì)象轉(zhuǎn)字符串(序列化后轉(zhuǎn)Base64編碼字符串) /// </summary> /// <param name="obj">對(duì)象</param> /// <returns>字符串</returns> public static string ObjectToString<T>(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); } } /// <summary> /// 字符串轉(zhuǎn)對(duì)象(Base64編碼字符串反序列化為對(duì)象) /// </summary> /// <param name="str">字符串</param> /// <returns>對(duì)象</returns> public static T StringToObject<T>(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); } } } /// <summary> /// 可序列化的類(lèi),用Serializable標(biāo)示此類(lèi)可序列化 /// </summary> [Serializable] public class Student { public string StudentID { get; set; } public string StudentName { get; set; } } }
運(yùn)行結(jié)果截圖:
網(wǎng)頁(yè)題目:C#序列化、反序列化
路徑分享:http://www.chinadenli.net/article32/gisgpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、企業(yè)建站、做網(wǎng)站、ChatGPT、建站公司、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
網(wǎng)頁(yè)設(shè)計(jì)公司知識(shí)