自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C# XML序列化應(yīng)用淺析

開發(fā) 后端
C# XML序列化應(yīng)用向你介紹了C# XML序列化的基本概念以及C# XML序列化應(yīng)用的實例分析,希望對你學習C# XML序列化應(yīng)用有所幫助。

C# XML序列化應(yīng)用探討之前我們來看看C# XML序列化的概念:C# XML序列化將對象的公共字段和屬性或者方法的參數(shù)和返回值轉(zhuǎn)換(序列化)為符合特定 XML 架構(gòu)定義語言 (XSD) 文檔的 XML 流。C# XML序列化生成強類型的類,并為存儲或傳輸目的將其公共屬性和字段轉(zhuǎn)換為序列格式(在此情況下為 XML)簡單的說就是將一個對象轉(zhuǎn)換成XML流或是文件的過程。注意事項:要序列化的類必須有一個默認的構(gòu)造器,不能序列化類中的私有變量或方法。下面以實例來說明。這個是要序列化的類。

C# XML序列化應(yīng)用實例:
  1. public class XmlSerObject  
  2.     {  
  3. public XmlSerObject()  
  4. {  
  5. }  
  6.  
  7. private DateTime m_datetime;  
  8. public DateTime CurrentDate  
  9. {  
  10.     get { return m_datetime; }  
  11.     set { this.m_datetime = value; }  
  12. }  
  13.  
  14. private string m_name;  
  15. public string Name  
  16. {  
  17.     get { return this.m_name; }  
  18.     set { this.m_name = value; }  
  19. }  
  20.  
  21. public XmlSerObject(string name, DateTime current)  
  22. {  
  23.     this.m_name = name;  
  24.     this.m_datetime = current;  
  25. }  
  26.  

這個是我寫的一個方法用來序列化這個類并將數(shù)據(jù)保存到一個xml文件中。

  1. /**//// ﹤summary﹥  
  2. /// 序列化一個對象  
  3. /// ﹤/summary﹥  
  4. /// ﹤param name="fileName"﹥要存放的文件名(包括路徑)﹤/param﹥  
  5. /// ﹤param name="xmlobj"﹥被序列化的對象﹤/param﹥  
  6. public static void SerObject(string fileName, Object xmlobj)  
  7. {  
  8. using (FileStream stream =   
  9. new FileStream(fileName,   
  10. FileMode.OpenOrCreate, FileAccess.ReadWrite))  
  11. {  
  12. //得到被序列化的類型  
  13. Type type = xmlobj.GetType();  
  14. XmlSerializer sz = new XmlSerializer(type);  
  15. //開始序列化  
  16. sz.Serialize(stream, xmlobj);  
  17.     }  

通過這個方法就可以生成一個XML文件

  1. private void btnXml_Click(object sender, EventArgs e)  
  2. {  
  3.     //創(chuàng)建一個對象。  
  4.     XmlSerObject serobj = new XmlSerObject("fastyou", DateTime.Now);  
  5.     //XmlSerialize這個是SerObject這個方法所在的類名。  
  6.     XmlSerialize.SerObject(@"c:\fastyou.xml", serobj);  

C# XML序列化應(yīng)用結(jié)果:

  1. ﹤?xml version="1.0"?﹥  
  2. ﹤XmlSerObject xmlns:xsi=  
  3.  
  4. "http://www.w3.org/2001/XMLSchema-instance"   
  5.  
  6. xmlns:xsd="http://www.w3.org/2001/XMLSchema"﹥  
  7.   ﹤CurrentDate﹥2006-11-14T00:53:09.5731779+08:00﹤/CurrentDate﹥  
  8.   ﹤Name﹥fastyou﹤/Name﹥  
  9. ﹤/XmlSerObject﹥  

這個就是我們序列化后看到的結(jié)果。如果你在要序列化的類名加上[XmlRoot("Fastyou")]這個Attribute的話那么XML文件里的XmlSerObject將會變成Fastyou.^_^.如果在類的Name屬性[XmlAttribute("Name")]這個Attribute的話結(jié)果又會有變化請看下面Name是不是換了位置呢。

  1. ﹤?xml version="1.0"?﹥  
  2. ﹤XmlSerObject xmlns:xsi=  
  3. "http://www.w3.org/2001/XMLSchema-instance"   
  4. xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="fastyou"﹥  
  5.   ﹤CurrentDate﹥2006-11-14T00:57:09.0278354+08:00﹤/CurrentDate﹥  
  6. ﹤/XmlSerObject﹥ 

如果你將序列化的方法改成下面的形式就會得到這個xml文件的內(nèi)容的一個字符串

  1. /**//// ﹤summary﹥  
  2. /// 序列化一個對象  
  3. /// ﹤/summary﹥  
  4. /// ﹤param name="fileName"﹥要存放的文件名(包括路徑)﹤/param﹥  
  5. /// ﹤param name="xmlobj"﹥被序列化的對象﹤/param﹥  
  6. public static string SerObject(string fileName, Object xmlobj)  
  7. {  
  8.     StringBuilder sb = new StringBuilder();  
  9.     StringWriter tw = new StringWriter(sb);  
  10.     Type type = xmlobj.GetType();  
  11.     XmlSerializer sz = new XmlSerializer(type);  
  12.     sz.Serialize(tw, xmlobj);  
  13.     tw.Close();  
  14.     return sb.ToString();  

C# XML序列化應(yīng)用相關(guān)的內(nèi)容就向你介紹到這里,希望對你了解和學習C# XML序列化應(yīng)用有所幫助。

【編輯推薦】

  1. C# 泛型編程基礎(chǔ)實例詳解
  2. 學習C#泛型集合類型的心得體會
  3. .net泛型類的學習總結(jié)
  4. 深度剖析C#序列化和反序列化
  5. 深入探討C#序列化和反序列化
責任編輯:仲衡 來源: 博客園
相關(guān)推薦

2009-09-09 15:54:48

C# XML序列化

2009-08-25 15:15:08

C#對象序列化應(yīng)用

2009-09-09 16:53:49

C# XmlSeria序列化

2009-09-09 17:10:50

C# XML序列化

2009-08-24 17:14:08

C#序列化

2009-09-09 17:14:24

XML序列化

2009-09-09 14:45:41

XML序列化和反序列化

2009-08-06 11:16:25

C#序列化和反序列化

2009-08-25 14:24:36

C#序列化和反序列化

2011-06-01 14:50:48

2024-05-06 00:00:00

C#序列化技術(shù)

2009-08-25 14:43:26

C#序列化和反序列化

2009-09-09 16:30:59

C# BinaryFo

2011-05-18 15:20:13

XML

2022-07-27 22:36:16

ThriftRPC開源

2009-09-09 13:57:28

C# XML解析

2009-08-19 16:42:41

C#如何使用XML

2024-01-30 13:32:51

JSON反序列化序列化

2012-04-13 10:45:59

XML

2009-08-18 16:42:49

C# 操作XML
點贊
收藏

51CTO技術(shù)棧公眾號