使用XmlSerializer可将对象序列化为XML,需定义公共属性和默认构造函数,通过特性如XmlRoot、XmlElement等自定义格式,支持单个对象与集合的序列化输出。

在.NET或其他编程环境中,将对象序列化为XML是一种常见的数据交换方式。通过序列化,可以将内存中的对象转换为XML格式的字符串,便于存储或传输。以下是实现对象序列化为XML的基本方法与示例。
XmlSerializer 是 .NET 中用于将对象序列化为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 string City { get; set; }
}
class Program
{
static void Main()
{
var person = new Person
{
Name = "张三",
Age = 30,
City = "北京"
};
var serializer = new XmlSerializer(typeof(Person));
using (var writer = new StringWriter())
{
serializer.Serialize(writer, person);
string xmlResult = writer.ToString();
Console.WriteLine(xmlResult);
}
}
}
输出结果:
<?xml version="1.0" encoding="utf-16"?>
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>张三</Name>
<Age>30</Age>
<City>北京</City>
</Person>
可以通过添加 System.Xml.Serialization 命名空间下的特性来定制XML结构。
[XmlRoot("用户")]
public class Person
{
[XmlElement("姓名")]
public string Name { get; set; }
[XmlAttribute("年龄")]
public int Age { get; set; }
[XmlIgnore]
public string City { get; set; }
}
输出示例:
<用户 年龄="30" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<姓名>张三</姓名>
</用户>
也可以将对象列表序列化为XML。XmlSerializer 支持泛型集合和数组。
例如,序列化 List<Person>:
var people = new List<Person>
{
new Person { Name = "张三", Age = 30 },
new Person { Name = "李四", Age = 25 }
};
var serializer = new XmlSerializer(typeof(List<Person>));
using (var writer = new StringWriter())
{
serializer.Serialize(writer, people);
Console.WriteLine(writer.ToString());
}
基本上就这些。只要对象结构清晰并正确使用特性,就能方便地将对象转为XML格式。注意类必须有公共属性和默认构造函数,否则可能抛出异常。
以上就是XML中如何序列化对象为XML_XML序列化对象为XML的方法与示例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号