在C#开发中,经常需要将对象保存为XML格式,或者从XML文件中读取数据并还原为对象。这时,XmlSerializer 就派上用场了!本教程将手把手教你如何使用 XmlSerializer 进行C# XML序列化和反序列化,即使你是编程小白也能轻松掌握。
XML序列化是指将C#中的对象转换为XML格式的字符串或文件的过程;而反序列化则是将XML数据还原为原始对象。这种技术广泛应用于配置文件存储、数据交换、Web服务通信等场景。
使用 XmlSerializer 前,你需要在代码顶部引入以下命名空间:
using System;using System.IO;using System.Xml.Serialization; 要使用 XmlSerializer,你的类必须满足以下条件:
下面是一个简单的 Person 类示例:
public class Person{ public string Name { get; set; } public int Age { get; set; } public string Email { get; set; }} 使用 XmlSerializer 将对象写入XML文件的完整代码如下:
// 创建一个Person对象Person person = new Person{ Name = "张三", Age = 28, Email = "zhangsan@example.com"};// 创建XmlSerializer实例,指定类型为PersonXmlSerializer serializer = new XmlSerializer(typeof(Person));// 使用StreamWriter将对象写入XML文件using (StreamWriter writer = new StreamWriter("person.xml")){ serializer.Serialize(writer, person);}Console.WriteLine("对象已成功序列化为XML文件!"); 运行后,会在项目目录下生成 person.xml 文件,内容类似:
<?xml version="1.0" encoding="utf-8"?><Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Name>张三</Name> <Age>28</Age> <Email>zhangsan@example.com</Email></Person> 现在我们把刚才生成的XML文件读回来,还原成 Person 对象:
XmlSerializer deserializer = new XmlSerializer(typeof(Person));using (StreamReader reader = new StreamReader("person.xml")){ Person loadedPerson = (Person)deserializer.Deserialize(reader); Console.WriteLine($"姓名: {loadedPerson.Name}"); Console.WriteLine($"年龄: {loadedPerson.Age}"); Console.WriteLine($"邮箱: {loadedPerson.Email}");} 你还可以通过特性(Attributes)控制生成的XML结构。例如:
public class Person{ [XmlElement("FullName")] public string Name { get; set; } [XmlAttribute("YearsOld")] public int Age { get; set; } public string Email { get; set; }} 这样生成的XML会变成:
<Person YearsOld="28"> <FullName>张三</FullName> <Email>zhangsan@example.com</Email></Person> XmlSerializer 实例较慢,建议缓存实例以提高性能。InvalidOperationException,建议用 try-catch 包裹。通过本教程,你已经掌握了在C#中使用 XmlSerializer 进行XML序列化和反序列化的基本方法。这项技能对于处理配置文件、API数据交换等场景非常实用。记住关键点:类要 public、属性要 public、善用特性控制输出格式。
希望这篇 .NET XML操作 教程对你有帮助!如果你正在学习 C#对象转XML,不妨动手试试上面的代码,加深理解。
关键词回顾:C# XML序列化、XmlSerializer教程、C#对象转XML、.NET XML操作。
本文由主机测评网于2025-12-27发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20251213264.html