在C#中,XML序列化和反序列化是将对象转换为XML格式以及从XML格式还原对象的过程。XML是一种常用的数据交换格式,适用于跨平台和跨语言的数据传输。
using System;
using System.IO;
using System.Xml.Serialization;
[Serializable]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
static void Main(string[] args)
{
Person person = new Person { Name = "John", Age = 30 };
XmlSerializer serializer = new XmlSerializer(typeof(Person));
using (FileStream stream = new FileStream("person.xml", FileMode.Create))
{
serializer.Serialize(stream, person);
}
}
}
在上述示例中,我们定义了一个名为Person的可序列化类。我们使用XmlSerializer类创建一个XmlSerializer对象,并使用FileStream将Person对象序列化为XML文件。
using System;
using System.IO;
using System.Xml.Serialization;
[Serializable]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class Program
{
static void Main(string[] args)
{
XmlSerializer serializer = new XmlSerializer(typeof(Person));
using (FileStream stream = new FileStream("person.xml", FileMode.Open))
{
Person person = (Person)serializer.Deserialize(stream);
Console.WriteLine("Name: " + person.Name);
Console.WriteLine("Age: " + person.Age);
}
}
}
在上述示例中,我们使用XmlSerializer类将之前序列化的XML文件反序列化为Person对象,并打印出对象的属性值。 请注意,在进行XML序列化和反序列化时,被操作的类需要满足一些要求,如类必须有一个无参数的构造函数,并且可以被序列化的属性需要有公共的get和set访问器。 除了使用System.Xml.Serialization命名空间中的类,还可以考虑使用其他的XML序列化库,如Newtonsoft.Json (Json.NET)中的JsonConvert类的DeserializeObject<T>()方法。