asp.net xml序列化與反序列化第1/2頁
更新時間:2008年08月13日 10:44:41 作者:
在.NET下有一種技術叫做對象序列化,它可以將對象序列化為二進制文件、XML文件、SOAP文件,這樣, 使用經(jīng)過序列化的流進行傳輸效率就得到了大大的提升。
在網(wǎng)上找了一些關于xml序列化與反序列化的資料,摘錄下:
在.NET下有一種技術叫做對象序列化,它可以將對象序列化為二進制文件、XML文件、SOAP文件,這樣, 使用經(jīng)過序列化的流進行傳輸效率就得到了大大的提升。
在.NET中提供了兩種序列化:二進制序列化、XML和SOAP序列化。對于WEB應用來說,用得最多的是第二種———XML和SOAP序列化。
XML 序列化將對象的公共字段和屬性或者方法的參數(shù)和返回值轉(zhuǎn)換(序列化)為符合特定 XML 架構(gòu)定義 語言 (XSD) 文檔的 XML 流。
XML 序列化生成強類型的類,并為存儲或傳輸目的將其公共屬性和字段轉(zhuǎn)換為序列格式(在此情況下為
XML)。
注意:
1、XML 序列化不轉(zhuǎn)換方法、索引器、私有字段或只讀屬性(只讀集合除外)。
2、使用Serialize和Deserialize需要指明命令空間System.Xml.Serialization,using System.IO。
xml序列化簡單的應用舉例:
有個類定義為:
C#復制代碼
public class webinfo
{
public string userName;
public string webName;
public string webUrl;
}
那么通過序列化我們可以將其序列化為: XML/HTML復制代碼
<?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://chabaoo.cn</webUrl>
</webinfo>
主要的代碼如下: C#復制代碼
webinfo info = new webinfo();
info.userName = "腳本之家";
info.webName = "腳本";
info.webUrl = "http://chabaoo.cn";
//用webinfo這個類造一個XmlSerializer
XmlSerializer ser = new XmlSerializer(typeof(webinfo));
//xml保存路徑,序列化成功后可以通過查看該文件看到序列化后結(jié)果
string path = Server.MapPath("webinfo.xml");
try
{
//Stream用于提供字節(jié)序列的一般視圖,這里將在根目錄下建立一個xml文件
Stream file = new FileStream(path, FileMode.Create, FileAccess.Write);
//把Stream對象和info一起傳入,序列化出一個XML文件,如果沒這一步,建立的xml內(nèi)容為空
ser.Serialize(file, info);
//釋放資源
file.Close();
file.Dispose();
Response.Write("序列化成功");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
}
在.NET下有一種技術叫做對象序列化,它可以將對象序列化為二進制文件、XML文件、SOAP文件,這樣, 使用經(jīng)過序列化的流進行傳輸效率就得到了大大的提升。
在.NET中提供了兩種序列化:二進制序列化、XML和SOAP序列化。對于WEB應用來說,用得最多的是第二種———XML和SOAP序列化。
XML 序列化將對象的公共字段和屬性或者方法的參數(shù)和返回值轉(zhuǎn)換(序列化)為符合特定 XML 架構(gòu)定義 語言 (XSD) 文檔的 XML 流。
XML 序列化生成強類型的類,并為存儲或傳輸目的將其公共屬性和字段轉(zhuǎn)換為序列格式(在此情況下為
XML)。
注意:
1、XML 序列化不轉(zhuǎn)換方法、索引器、私有字段或只讀屬性(只讀集合除外)。
2、使用Serialize和Deserialize需要指明命令空間System.Xml.Serialization,using System.IO。
xml序列化簡單的應用舉例:
有個類定義為:
C#復制代碼
public class webinfo
{
public string userName;
public string webName;
public string webUrl;
}
那么通過序列化我們可以將其序列化為: XML/HTML復制代碼
<?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://chabaoo.cn</webUrl>
</webinfo>
主要的代碼如下: C#復制代碼
webinfo info = new webinfo();
info.userName = "腳本之家";
info.webName = "腳本";
info.webUrl = "http://chabaoo.cn";
//用webinfo這個類造一個XmlSerializer
XmlSerializer ser = new XmlSerializer(typeof(webinfo));
//xml保存路徑,序列化成功后可以通過查看該文件看到序列化后結(jié)果
string path = Server.MapPath("webinfo.xml");
try
{
//Stream用于提供字節(jié)序列的一般視圖,這里將在根目錄下建立一個xml文件
Stream file = new FileStream(path, FileMode.Create, FileAccess.Write);
//把Stream對象和info一起傳入,序列化出一個XML文件,如果沒這一步,建立的xml內(nèi)容為空
ser.Serialize(file, info);
//釋放資源
file.Close();
file.Dispose();
Response.Write("序列化成功");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
}
相關文章
密碼綁定至密碼文本框中(TextMode設為Password)
一般情況之下TextBox的TextMode設為Password話,我們想在后臺(.cs)綁定一個值至此文本框,是無法實現(xiàn)的,如果一定要綁定值的話,該如何實現(xiàn)呢?,本文將告訴你實現(xiàn)方法,感興趣的朋友可以參考下2013-01-01使用pdfbox實現(xiàn)pdf文本提取和合并功能示例
這篇文章主要介紹了使用pdfbox實現(xiàn)pdf文本提取和合并功能示例,大家參考使用吧2014-01-01asp.net網(wǎng)站首頁根據(jù)IP自動跳轉(zhuǎn)指定頁面的示例
本文介紹的程序主要實現(xiàn)根據(jù)IP地址或地址段或IP所在城市進行自動跳轉(zhuǎn)到指定頁面的功能,需要的朋友可以參考下2014-02-02Entity?Framework實現(xiàn)數(shù)據(jù)遷移
本文詳細講解了Entity?Framework實現(xiàn)數(shù)據(jù)遷移的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03