asp.net 序列化and反序列化演示
更新時間:2008年10月28日 13:56:45 作者:
實質(zhì)上序列化機制是將類的值轉(zhuǎn)化為一個一般的(即連續(xù)的)字節(jié)流,然后就可以將該流寫到磁盤文件或任何其他流化目標上。而要想實際的寫出這個流,就要使用那些實現(xiàn)了IFormatter接口的類里的Serialize和Deserialize方法。
什么是序列化?
---.net的運行時環(huán)境用來支持用戶定義類型的流化的機制。它是將對象實例的狀態(tài)存儲到存儲媒體的過程。在此過程中,先將對象的公共字段和私有字段以及類的名稱(包括類所在的程序集)轉(zhuǎn)換為字節(jié)流,然后再把字節(jié)流寫入數(shù)據(jù)流。在隨后對對象進行反序列化時,將創(chuàng)建出與原對象完全相同的副本。
序列化的目的:
1、以某種存儲形式使自定義對象持久化;
2、將對象從一個地方傳遞到另一個地方。
實質(zhì)上序列化機制是將類的值轉(zhuǎn)化為一個一般的(即連續(xù)的)字節(jié)流,然后就可以將該流寫到磁盤文件或任何其他流化目標上。而要想實際的寫出這個流,就要使用那些實現(xiàn)了IFormatter接口的類里的Serialize和Deserialize方法。
private bool SerializeStudent(object obj)
{
FileDialog fd = new SaveFileDialog();
if (fd.ShowDialog() == DialogResult.OK | fd.FileName != null)
{
FileStream fs = new FileStream(fd.FileName, FileMode.Create, FileAccess.Write);
System.Xml.Serialization.XmlSerializer xmlSer = new System.Xml.Serialization.XmlSerializer(obj.GetType());
xmlSer.Serialize(fs, obj);
fs.Close();
return true;
}
else
{
return false;
}
}
private object DeSerializeStudent(object obj)
{
FileDialog fd = new OpenFileDialog();
object objStd;
if (fd.FileName != null | fd.ShowDialog() == DialogResult.OK)
{
FileStream fs = new FileStream(fd.FileName, FileMode.Open, FileAccess.Read, FileShare.Read);
System.Xml.Serialization.XmlSerializer xmlSer = new System.Xml.Serialization.XmlSerializer(obj.GetType());
objStd = xmlSer.Deserialize(fs);
fs.Close();
return objStd;
}
else
{
return null;
}
}
---.net的運行時環(huán)境用來支持用戶定義類型的流化的機制。它是將對象實例的狀態(tài)存儲到存儲媒體的過程。在此過程中,先將對象的公共字段和私有字段以及類的名稱(包括類所在的程序集)轉(zhuǎn)換為字節(jié)流,然后再把字節(jié)流寫入數(shù)據(jù)流。在隨后對對象進行反序列化時,將創(chuàng)建出與原對象完全相同的副本。
序列化的目的:
1、以某種存儲形式使自定義對象持久化;
2、將對象從一個地方傳遞到另一個地方。
實質(zhì)上序列化機制是將類的值轉(zhuǎn)化為一個一般的(即連續(xù)的)字節(jié)流,然后就可以將該流寫到磁盤文件或任何其他流化目標上。而要想實際的寫出這個流,就要使用那些實現(xiàn)了IFormatter接口的類里的Serialize和Deserialize方法。
private bool SerializeStudent(object obj)
{
FileDialog fd = new SaveFileDialog();
if (fd.ShowDialog() == DialogResult.OK | fd.FileName != null)
{
FileStream fs = new FileStream(fd.FileName, FileMode.Create, FileAccess.Write);
System.Xml.Serialization.XmlSerializer xmlSer = new System.Xml.Serialization.XmlSerializer(obj.GetType());
xmlSer.Serialize(fs, obj);
fs.Close();
return true;
}
else
{
return false;
}
}
private object DeSerializeStudent(object obj)
{
FileDialog fd = new OpenFileDialog();
object objStd;
if (fd.FileName != null | fd.ShowDialog() == DialogResult.OK)
{
FileStream fs = new FileStream(fd.FileName, FileMode.Open, FileAccess.Read, FileShare.Read);
System.Xml.Serialization.XmlSerializer xmlSer = new System.Xml.Serialization.XmlSerializer(obj.GetType());
objStd = xmlSer.Deserialize(fs);
fs.Close();
return objStd;
}
else
{
return null;
}
}
相關(guān)文章
ASP.NET中利用DataList實現(xiàn)圖片無縫滾動 實例分享
這個問題之前也困擾我,后來解決了,拿出來分享下,以后用也方便,代碼很容易看懂,不多說什么了2013-06-06.net core 靜態(tài)類獲取appsettings的方法
這篇文章主要介紹了.net core 靜態(tài)類獲取appsettings的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06ASP.NET ashx實現(xiàn)無刷新頁面生成驗證碼
這篇文章主要為大家詳細介紹了ASP.NET ashx實現(xiàn)無刷新頁面生成驗證碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09.NET 日志系統(tǒng)設(shè)計思路及實現(xiàn)代碼
這篇文章主要介紹了.NET 日志系統(tǒng)設(shè)計思路及實現(xiàn)代碼,有需要的朋友可以參考一下2013-12-12