`n C#中如何序列化和反序列化对象?

C#中如何序列化和反序列化对象?

Clock Icon 发布时间:2026/11/8 20:39  · 

在NET/" style="text-decoration: none; color: inherit;" title="C#">C#中,序列化和反序列化是处理对象与数据之间转换的重要技术。序列化是将对象转换为可以存储或传输的格式,反之则是将存储或传输的数据还原为对象。理解序列化和反序列化的过程在处理数据交换和持久化时非常重要。
NET/" style="text-decoration: none; color: inherit;" title="C#">C#提供了多种序列化方式,XML和JSON是常见的两种格式。XML可以通过XmlSerializer类实现,它允许将对象转换为XML格式,同时再将XML数据还原为对象。JSON则可以利用JsonSerializer来实现,尤其在Web应用中,JSON形式更为流行和轻便。
使用XmlSerializer进行XML序列化时,首先定义一个类,然后实例化XmlSerializer类,调用Serialize方法进行序列化。下面是简单的示例代码:
```csharpusing System.IO;using System.Xml.Serialization;public class Person{ public string Name { get; set; } public int Age { get; set; }}public void SerializeToXml(){ Person person = new Person { Name = "John", Age = 30 }; XmlSerializer serializer = new XmlSerializer(typeof(Person)); using (TextWriter writer = new StreamWriter("person.xml")) { serializer.Serialize(writer, person); }}```
反序列化可以通过XmlSerializer的Deserialize方法实现,能够将XML文件的数据还原为对象,代码示例为:
```csharppublic Person DeserializeFromXml(){ XmlSerializer serializer = new XmlSerializer(typeof(Person)); using (TextReader reader = new StreamReader("person.xml")) { return (Person)serializer.Deserialize(reader); }}```
为了实现JSON格式的序列化,使用JsonSerializer,以下是序列化和反序列化的示例代码:
```csharpusing System.IO;using System.Text.Json;public void SerializeToJson(){ Person person = new Person { Name = "John", Age = 30 }; string json = JsonSerializer.Serialize(person); File.WriteAllText("person.json", json);}public Person DeserializeFromJson(){ string json = File.ReadAllText("person.json"); return JsonSerializer.Deserialize(json);}```
在选择序列化方式时,需要考虑数据格式的需求。XML相对更自描述,便于阅读和理解,而JSON则更简洁,数据传输效率较高。适当选择序列化形式,有助于在不同的应用场景中实现最佳的性能表现。
还可通过自定义特性来控制序列化行为。例如,XmlIgnore属性可以用于指定在序列化时跳过某些属性。使用这些特性,可以灵活调整序列化的输出内容,来满足特定的业务需求。
在NET/" style="text-decoration: none; color: inherit;" title="C#">C#中,序列化和反序列化的操作简便,通过系统提供的类库和API,可以高效地进行数据转换和存储,极大地方便了数据的管理与保存。这些技术在现代软件开发中占据着重要的地位,为开发者提供了强大的数据处理能力。

推荐文章

热门文章