Skip to content

C# XML序列化/反序列化Howto

为项目组写了几个Howto的Case。

本文描述了一个用C#实现类的XML序列化及反序列化。 功能是生成一个类的实例,然后序列化成XML文件形式。 或者将一个已经序列化成文件的XML反序列化成类的实例。

为了充分展示Framework功能,在一个类里面嵌入另一个类,并且XML属性字段混杂。

Student.cs

using System; using System.Collections.Generic; using System.Text; using System.Xml.Serialization;

namespace XMLHowto {

public class Student
{

    public long Number;

    public string Name;

    public bool enabled;

    public Dorm dorm;
}

}

Dorm.cs

using System; using System.Collections.Generic; using System.Text; using System.Xml.Serialization;

namespace XMLHowto {

public class Dorm
{

    public string Name;

    public string Number;
}

}

Program.cs

using System; using System.Collections.Generic; using System.Text; using System.Xml.Serialization; using System.IO;

namespace XMLHowto { class Program { static void Main(string[] args) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(Student));

        //序列化
        FileStream fs1 = new FileStream("./student.xml", FileMode.Create, FileAccess.Write);
        Student student = new Student();
        Dorm dorm = new Dorm();

        dorm.Name = "der drom";
        dorm.Number = "16-501-1";

        student.dorm = dorm;
        student.enabled = true;
        student.Number = 222222;
        student.Name = "maojun";

        xmlSerializer.Serialize(fs1, student);

        //反序列化
        FileStream fs2 = new FileStream("./student2.xml", FileMode.Open, FileAccess.Read);
        Student student2 = (Student)xmlSerializer.Deserialize(fs2);
    }
}

}

下载:用Visual Studio 2008打开 http://download.nocoo.us/Download/Archive/CSharpHowto/XML.rar