zoukankan      html  css  js  c++  java
  • C#实现对象的Xml格式序列化及反序列化

    要序列化的对象的类:

    [Serializable]
    public class Person
    {
    private string name;
    public string Name
    {
    get
    {
    return name;
    }
    set
    {
    name=value;
    }
    }
    public string Sex;
    public int Age=31;
    public Course[] Courses;

    public Person()
    {
    }
    public Person(string Name)
    {
    name=Name;
    Sex='男';
    }
    }
    [Serializable]
    public class Course
    {
    public string Name;
    [XmlIgnore]public string Description;
    public Course()
    {
    }
    public Course(string name,string description)
    {
    Name=name;
    Description=description;
    }

    进行序列化及反序列化的测试类:

    class Test
    {
    //序列化
    public void Serialiaze()
    {
    Person c=new Person('cyj')
    c.Courses=new Course[2];
    c.Courses[0]=new Course('英语','交流工具')
    c.Courses[1]=new Course('数学','自然科学')

    XmlSerializer xs=new XmlSerializer(typeof(Person));
    Stream stream = new FileStream('c:\\cyj.xml', FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
    xs.Serialize(stream, c);
    stream.Close();
    }
    //反序列化
    public void Deserialize()
    {
    XmlSerializer xs=new XmlSerializer(typeof(Person));
    Stream stream = new FileStream('c:\\cyj.xml', FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
    Person p=(Person)xs.Deserialize(stream);
    Console.WriteLine(p.Name);
    Console.WriteLine(p.Age.ToString());
    Console.WriteLine(p.Courses.Length.ToString());
    Console.Read();
    }
    }

    格式化后Xml的文档内容为:
    <?xml version='1.0'?>
    <Person xmlns:xsd=http://www.w3.org/2001/XMLSchema    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
     <Sex>男</Sex>
      <Age>31</Age>
      <Courses>
        <Course>
          <Name>英语</Name>
        </Course>
        <Course>
          <Name>数学</Name>
        </Course>
      </Courses>
      <Name>cyj</Name>
    </Person>

  • 相关阅读:
    Java的并发编程:创建线程的多种方式
    va_end (Variadic functions) – C 中文开发手册
    PHP headers_sent() 函数
    Java面试题:你用过的网站前端优化的技术有哪些?
    space-before-keywords (Rules) – Eslint 中文开发手册
    JavaScript 数据类型
    C 库函数 – free()
    屏幕 | screen (screen) – Electron 中文开发手册
    lrint (Numerics) – C 中文开发手册
    《《数据化风控》读书笔记分享》
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/1107882.html
Copyright © 2011-2022 走看看