XML文件系列三之序列化与反序列化

前端之家收集整理的这篇文章主要介绍了XML文件系列三之序列化与反序列化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

序列化是将对象转换为可保持或传输的格式的过程。反序列化的过程正好是相反的过程。
一、准备阶段,得有一个可供序列化的对象类Person类。

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Xml;
  6. using System.Xml.Serialization;
  7.  
  8. namespace XMLSerializer
  9. {
  10. [Serializable]
  11. public class Person
  12. {
  13. private string name;
  14.  
  15. [XmlElementAttribute(ElementName ="姓名")]
  16. public string Name
  17. {
  18. get { return name; }
  19. set { name = value; }
  20. }
  21. private string sex;
  22. [XmlElementAttribute(ElementName = "性别")]
  23. public string Sex
  24. {
  25. get { return sex; }
  26. set { sex = value; }
  27. }
  28. private int age;
  29. [XmlElementAttribute(ElementName = "年龄")]
  30. public int Age
  31. {
  32. get { return age; }
  33. set { age = value; }
  34. }
  35. public Person()
  36. {
  37.  
  38. }
  39.  
  40. public Person(string _name,string _sex,int _age)
  41. {
  42. Name = _name;
  43. Sex = _sex;
  44. Age = _age;
  45. }
  46. }
  47. }

二、序列化的过程
1、建立一个流对象如Stream等。
2、建立一个序列化对象XmlSerialize。
3、调用XmlSerialize对象的Deserialize方法

  1. Person p1 = new Person("张三","男",20);
  2. try
  3. {
  4. FileStream fs = new FileStream("person.xml",FileMode.Create);
  5. //序列化
  6. XmlSerializer xs = new XmlSerializer(typeof(Person));
  7. xs.Serialize(fs,p1);
  8. fs.Close();
  9. }
  10. catch (Exception ex)
  11. {
  12.  
  13. Console.WriteLine(ex.Message);
  14. }
  15. Console.WriteLine("序列化成功");

三、反序列化过程

  1. //反序列化
  2. try
  3. {
  4. FileStream fileStream = new FileStream("person.xml",FileMode.Open,FileAccess.Read);
  5. XmlSerializer xmlSerializer = new XmlSerializer(typeof(Person));
  6. Person p = (Person)xmlSerializer.Deserialize(fileStream);
  7. Console.WriteLine(p.Name + p.Sex + p.Age);
  8. }
  9. catch (Exception e)
  10. {
  11.  
  12. Console.WriteLine(e.Message);
  13. }

参考资料:
Person 类的来源,C# 类用XmlSerializer进行序列化和反序列化进行文件读写的一个简单例子: http://www.jb51.cc/article/p-zdxzlvri-gg.html

猜你在找的XML相关文章