直接上代码:
1,构建对象:
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Sex { get; set; }
}
public class Country
{
public long peoples { get; set; }
public string name { get; set; }
public string air { get; set; }
public string capital { get; set; }
}
public class Config
{
public Student student;
public Country country;
}
2, 添加引用 :using System.Xml.Serialization;
3,序列化到文件的方法:
public static void WriteXMLFile(string fileName, object data)
{
using(FileStream fs = new FileStream(fileName, FileMode.Create)) // 写到XML
{
XmlSerializer formatter = new XmlSerializer(typeof(Config),new Type[] { });
formatter.Serialize(fs, data);
}
}
4,初始化对象 序列化到文件中:
Config config = new Config();
config.student = new Student() { ID = 1, Name = "武松", Age = 250, Sex = "男" };
config.country = new Country() { peoples = 120000, name = "魏国", air = "999", capital = "许昌" };
WriteXMLFile("XML_File.xml", config);
5,从文件中反序列化出来:
public static Config ReadXMLFile(string fileName)
{
Config t = null;
using(FileStream fs = new FileStream(fileName, FileMode.Open))
{
XmlSerializer formatter = new XmlSerializer(typeof(Config),new Type[] { });
t = (Config)formatter.Deserialize(fs);
}
return t;
}
6,用法
static void Main(string[] args)
{
Config config = new Config();
config.student = new Student() { ID = 1, Name = "武松", Age = 250, Sex = "男" };
config.country = new Country() { peoples = 120000, name = "魏国", air = "999", capital = "许昌" };
WriteXMLFile("XML_File.xml", config);//序列化到文件
//从文件 反序列化到对象
Config readXML = ReadXMLFile("XML_File.xml");
Console.WriteLine("Read xml data: \r\n");
Console.WriteLine(readXML.student.ID);
Console.WriteLine(readXML.student.Name);
Console.WriteLine(readXML.student.Age);
Console.WriteLine(readXML.student.Sex);
Console.WriteLine("\r\n");
Console.WriteLine(readXML.country.name);
Console.WriteLine(readXML.country.peoples);
Console.WriteLine(readXML.country.air);
Console.WriteLine(readXML.country.capital);
Console.ReadLine();
}