成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

.NET對象的XML序列化和反序列化實例詳解

開發(fā) 后端
.NET對象的XML序列化和反序列化實例實現(xiàn)主要向你介紹了一個完整的xml schema實例,向你詳細的講述了具體的操作步驟和使用方法,希望對你了解和學(xué)習(xí)XML序列化和反序列化有所幫助。

.NET對象的XML序列化和反序列化是如何實現(xiàn)的呢?通過下面實例中的xml schema 描述了一個簡單的人力資源信息,詳細向你介紹.NET對象的XML序列化和反序列化的實現(xiàn)過程其中包含了XML的大部分格式,如XML元素相互嵌套, XML元素既有元素值,又有屬性值。

XML序列化和反序列化實現(xiàn)1. 待序列化的類層次結(jié)構(gòu)

  1. [XmlRoot("humanResource")]  
  2. public class HumanResource  
  3. {  
  4. #region private data.  
  5. private int m_record = 0;  
  6. private Worker[] m_workers = null;  
  7. #endregion  
  8.    
  9. [XmlAttribute(AttributeName="record")]  
  10. public int Record  
  11. {  
  12. get { return m_record; }  
  13. set { m_record = value; }  
  14. }  
  15.    
  16. [XmlElement(ElementName="worker")]  
  17. public Worker[] Workers  
  18. {  
  19. get { return m_workers; }  
  20. set { m_workers = value; }  
  21. }  
  22. }  
  23.    
  24. public class Worker  
  25. {  
  26. #region private data.  
  27. private string m_number = null;  
  28. private InformationItem[] m_infoItems = null;  
  29. #endregion  
  30.    
  31. [XmlAttribute("number")]  
  32. public string Number  
  33. {  
  34. get { return m_number; }  
  35. set { m_number = value; }  
  36. }  
  37.    
  38. [XmlElement("infoItem")]  
  39. public InformationItem[] InfoItems  
  40. {  
  41. get { return m_infoItems; }  
  42. set { m_infoItems = value; }  
  43. }  
  44. }  
  45.    
  46. public class InformationItem  
  47. {  
  48. #region private data.  
  49. private string m_name = null;  
  50. private string m_value = null;  
  51. #endregion  
  52.    
  53. [XmlAttribute(AttributeName = "name")]  
  54. public string Name  
  55. {  
  56. get { return m_name; }  
  57. set { m_name = value; }  
  58. }  
  59.    
  60. [XmlText]  
  61. public string Value  
  62. {  
  63. get { return m_value; }  
  64. set { m_value = value; }  
  65. }  

XML序列化和反序列化實現(xiàn)2. 序列化生成的xml結(jié)構(gòu)

  1. ﹤?xml version="1.0" ?﹥  
  2. ﹤humanResource   
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  4. xmlns:xsd="http://www.w3.org/2001/XMLSchema" record="2"﹥  
  5. ﹤worker number="001"﹥  
  6.  ﹤infoItem name="name"﹥Michale﹤/infoItem﹥  
  7.  ﹤infoItem name="sex"﹥male﹤/infoItem﹥  
  8.  ﹤infoItem name="age"﹥25﹤/infoItem﹥  
  9. ﹤/worker﹥  
  10. ﹤worker number="002"﹥  
  11.  ﹤infoItem name="name"﹥Surce﹤/infoItem﹥  
  12.  ﹤infoItem name="sex"﹥male﹤/infoItem﹥  
  13.  ﹤infoItem name="age"﹥28﹤/infoItem﹥  
  14.    ﹤/worker﹥  
  15.  ﹤/humanResource﹥ 

XML序列化和反序列化實現(xiàn)3. 利用XmlSerializer類進行序列化和反序列化的實現(xiàn)

一般利用緩存機制實現(xiàn)xml文件只解析一次。

  1. public sealed class ConfigurationManager  
  2. {  
  3. private static HumanResource m_humanResource = null;  
  4. private ConfigurationManager(){}  
  5.    
  6. public static HumanResource Get(string path)  
  7. {  
  8. if (m_humanResource == null)  
  9. {  
  10. FileStream fs = null;  
  11. try 
  12. {  
  13. XmlSerializer xs =   
  14. new XmlSerializer(typeof(HumanResource));  
  15. fs = new FileStream(path,   
  16. FileMode.Open, FileAccess.Read);  
  17. m_humanResource = (HumanResource)xs.Deserialize(fs);  
  18. fs.Close();  
  19. return m_humanResource;  
  20. }  
  21. catch 
  22. {  
  23. if (fs != null)  
  24. fs.Close();  
  25. throw new Exception("Xml deserialization failed!");  
  26. }  
  27.    
  28. }  
  29. else 
  30. {  
  31. return m_humanResource;  
  32. }  
  33. }  
  34.    
  35. public static void Set(  
  36. string path, HumanResource humanResource)  
  37. {  
  38. if (humanResource == null)  
  39. throw new Exception("Parameter humanResource is null!");  
  40.  
  41. FileStream fs = null;  
  42. try 
  43. {  
  44. XmlSerializer xs =   
  45. new XmlSerializer(typeof(HumanResource));  
  46. fs = new FileStream(  
  47. path, FileMode.Create, FileAccess.Write);  
  48. xs.Serialize(fs, humanResource);  
  49. m_humanResource = null;  
  50. fs.Close();  
  51. }  
  52. catch 
  53. {  
  54. if (fs != null)  
  55. fs.Close();  
  56. throw new Exception("Xml serialization failed!");  
  57. }  
  58. }  
  59. }  

XML序列化和反序列化實現(xiàn)的基本內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)XML序列化和反序列化的實現(xiàn)有所幫助。

【編輯推薦】

  1. 淺析C# XML解析實例
  2. C# XML解析方法實戰(zhàn)剖析
  3. C# XML解析方式實例解析
  4. 簡述C# XML解析方法的特點及應(yīng)用
  5. .NET對象的XML序列化和反序列化概念淺析
責任編輯:仲衡 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2009-09-09 14:45:41

XML序列化和反序列化

2011-06-01 15:05:02

序列化反序列化

2011-05-18 15:20:13

XML

2012-04-13 10:45:59

XML

2009-08-06 11:16:25

C#序列化和反序列化

2009-06-14 22:01:27

Java對象序列化反序列化

2018-03-19 10:20:23

Java序列化反序列化

2022-08-06 08:41:18

序列化反序列化Hessian

2009-08-24 17:14:08

C#序列化

2009-09-09 16:10:11

.NET序列化和反序列

2009-07-29 13:39:02

JSON序列化和反序列ASP.NET AJA

2011-06-01 14:26:11

序列化

2009-08-25 14:24:36

C#序列化和反序列化

2019-11-20 10:07:23

web安全PHP序列化反序列化

2016-09-21 00:15:27

2023-12-13 13:49:52

Python序列化模塊

2021-11-18 07:39:41

Json 序列化Vue

2009-08-25 14:43:26

C#序列化和反序列化

2010-03-19 15:54:21

Java Socket

2011-06-01 14:50:48

點贊
收藏

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

主站蜘蛛池模板: 成人特级毛片 | 日本欧美黄色片 | 亚洲一区精品在线 | 色精品| 亚洲成人久久久 | www.99精品 | 天堂中文字幕av | 久久av资源网| 国产精品一区二区三区四区五区 | 在线日韩中文字幕 | 婷婷久久一区 | 中文字幕在线一区 | 国产精品免费观看 | 国产精品揄拍一区二区久久国内亚洲精 | 成人在线播放网站 | 五月天婷婷丁香 | 亚洲欧美日韩电影 | 91视频电影| 日韩视频精品在线 | 国内精品视频免费观看 | 欧美日韩综合视频 | 91网站在线观看视频 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 国产精品日韩在线观看 | 亚洲欧美日本国产 | 国产美女在线播放 | 一区二区三区视频在线 | 一级黄大片 | 日韩在线免费电影 | 国产精品久久久久久影院8一贰佰 | 国产一区二区免费 | 国产精品中文字幕在线 | av官网在线| 国产精品美女一区二区 | 久久国产精品-国产精品 | 天堂素人约啪 | 99reav | 亚洲精品女人久久久 | 成人免费视频观看视频 | 91伦理片 | 日操操 |