asp.net xml序列化與反序列化第1/2頁(yè)
更新時(shí)間:2008年08月13日 10:44:41 作者:
在.NET下有一種技術(shù)叫做對(duì)象序列化,它可以將對(duì)象序列化為二進(jìn)制文件、XML文件、SOAP文件,這樣, 使用經(jīng)過(guò)序列化的流進(jìn)行傳輸效率就得到了大大的提升。
在網(wǎng)上找了一些關(guān)于xml序列化與反序列化的資料,摘錄下:
在.NET下有一種技術(shù)叫做對(duì)象序列化,它可以將對(duì)象序列化為二進(jìn)制文件、XML文件、SOAP文件,這樣, 使用經(jīng)過(guò)序列化的流進(jìn)行傳輸效率就得到了大大的提升。
在.NET中提供了兩種序列化:二進(jìn)制序列化、XML和SOAP序列化。對(duì)于WEB應(yīng)用來(lái)說(shuō),用得最多的是第二種———XML和SOAP序列化。
XML 序列化將對(duì)象的公共字段和屬性或者方法的參數(shù)和返回值轉(zhuǎn)換(序列化)為符合特定 XML 架構(gòu)定義 語(yǔ)言 (XSD) 文檔的 XML 流。
XML 序列化生成強(qiáng)類(lèi)型的類(lèi),并為存儲(chǔ)或傳輸目的將其公共屬性和字段轉(zhuǎn)換為序列格式(在此情況下為
XML)。
注意:
1、XML 序列化不轉(zhuǎn)換方法、索引器、私有字段或只讀屬性(只讀集合除外)。
2、使用Serialize和Deserialize需要指明命令空間System.Xml.Serialization,using System.IO。
xml序列化簡(jiǎn)單的應(yīng)用舉例:
有個(gè)類(lèi)定義為:
C#復(fù)制代碼
public class webinfo
{
public string userName;
public string webName;
public string webUrl;
}
那么通過(guò)序列化我們可以將其序列化為: XML/HTML復(fù)制代碼
<?xml version="1.0"?>
<webinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<userName>腳本之家</userName>
<webName>腳本</webName>
<webUrl>http://www.dhdzp.com</webUrl>
</webinfo>
主要的代碼如下: C#復(fù)制代碼
webinfo info = new webinfo();
info.userName = "腳本之家";
info.webName = "腳本";
info.webUrl = "http://www.dhdzp.com";
//用webinfo這個(gè)類(lèi)造一個(gè)XmlSerializer
XmlSerializer ser = new XmlSerializer(typeof(webinfo));
//xml保存路徑,序列化成功后可以通過(guò)查看該文件看到序列化后結(jié)果
string path = Server.MapPath("webinfo.xml");
try
{
//Stream用于提供字節(jié)序列的一般視圖,這里將在根目錄下建立一個(gè)xml文件
Stream file = new FileStream(path, FileMode.Create, FileAccess.Write);
//把Stream對(duì)象和info一起傳入,序列化出一個(gè)XML文件,如果沒(méi)這一步,建立的xml內(nèi)容為空
ser.Serialize(file, info);
//釋放資源
file.Close();
file.Dispose();
Response.Write("序列化成功");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
}
在.NET下有一種技術(shù)叫做對(duì)象序列化,它可以將對(duì)象序列化為二進(jìn)制文件、XML文件、SOAP文件,這樣, 使用經(jīng)過(guò)序列化的流進(jìn)行傳輸效率就得到了大大的提升。
在.NET中提供了兩種序列化:二進(jìn)制序列化、XML和SOAP序列化。對(duì)于WEB應(yīng)用來(lái)說(shuō),用得最多的是第二種———XML和SOAP序列化。
XML 序列化將對(duì)象的公共字段和屬性或者方法的參數(shù)和返回值轉(zhuǎn)換(序列化)為符合特定 XML 架構(gòu)定義 語(yǔ)言 (XSD) 文檔的 XML 流。
XML 序列化生成強(qiáng)類(lèi)型的類(lèi),并為存儲(chǔ)或傳輸目的將其公共屬性和字段轉(zhuǎn)換為序列格式(在此情況下為
XML)。
注意:
1、XML 序列化不轉(zhuǎn)換方法、索引器、私有字段或只讀屬性(只讀集合除外)。
2、使用Serialize和Deserialize需要指明命令空間System.Xml.Serialization,using System.IO。
xml序列化簡(jiǎn)單的應(yīng)用舉例:
有個(gè)類(lèi)定義為:
C#復(fù)制代碼
public class webinfo
{
public string userName;
public string webName;
public string webUrl;
}
那么通過(guò)序列化我們可以將其序列化為: XML/HTML復(fù)制代碼
<?xml version="1.0"?>
<webinfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<userName>腳本之家</userName>
<webName>腳本</webName>
<webUrl>http://www.dhdzp.com</webUrl>
</webinfo>
主要的代碼如下: C#復(fù)制代碼
webinfo info = new webinfo();
info.userName = "腳本之家";
info.webName = "腳本";
info.webUrl = "http://www.dhdzp.com";
//用webinfo這個(gè)類(lèi)造一個(gè)XmlSerializer
XmlSerializer ser = new XmlSerializer(typeof(webinfo));
//xml保存路徑,序列化成功后可以通過(guò)查看該文件看到序列化后結(jié)果
string path = Server.MapPath("webinfo.xml");
try
{
//Stream用于提供字節(jié)序列的一般視圖,這里將在根目錄下建立一個(gè)xml文件
Stream file = new FileStream(path, FileMode.Create, FileAccess.Write);
//把Stream對(duì)象和info一起傳入,序列化出一個(gè)XML文件,如果沒(méi)這一步,建立的xml內(nèi)容為空
ser.Serialize(file, info);
//釋放資源
file.Close();
file.Dispose();
Response.Write("序列化成功");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
}
相關(guān)文章
asp.net靜態(tài)方法彈出對(duì)話框?qū)崿F(xiàn)思路
為菜鳥(niǎo)所準(zhǔn)備……其實(shí)就是彈出JavaScript小窗口,總得來(lái)說(shuō)就是定義的一個(gè)DIV,感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)asp.net有所幫助2013-02-02
asp.net下使用Request.From獲取非服務(wù)器控件的值的方法
asp.net下使用Request.From獲取非服務(wù)器控件的值的方法,需要的朋友可以參考下。2010-03-03
GridView分頁(yè)的實(shí)現(xiàn)以及自定義分頁(yè)樣式功能實(shí)例
本文為大家詳細(xì)介紹下GridView實(shí)現(xiàn)分頁(yè)并自定義的分頁(yè)樣式,具體示例代碼如下,有想學(xué)習(xí)的朋友可以參考下哈,希望對(duì)大家有所幫助2013-07-07
關(guān)于.net(C#)中的跨進(jìn)程訪問(wèn)的問(wèn)題
C# 跨進(jìn)程訪問(wèn)實(shí)現(xiàn)代碼。2009-04-04
數(shù)據(jù)庫(kù)SqlParameter 的插入操作,防止sql注入的實(shí)現(xiàn)代碼
今天學(xué)習(xí)了一下SqlParameter的用法,原來(lái)這么寫(xiě)是為了防止sql注入,破壞數(shù)據(jù)庫(kù)的。并自己動(dòng)手連接了數(shù)據(jù)庫(kù)。2013-04-04

