C#数据的序列化和反序列化(推荐版)
什么是序列化和反序列化
在计算机科学中,序列化是指将对象转换为可以存储或传输的格式的过程。
反序列化是指将序列化后的数据还原为对象的过程。
在C#中进行序列化和反序列化通常使用的是.NET Framework提供的System.Runtime.Serialization
命名空间下的类库。
序列化
C#中进行序列化的方式通常有以下两种:
XML序列化
使用XML来序列化对象时,需要在C#代码中使用System.Xml.Serialization.XmlSerializer
类。
示例代码:
using System.Xml.Serialization;
using System.IO;
public void SerializeToXml(Stream stream, object obj)
{
// 创建XmlSerializer实例
XmlSerializer serializer = new XmlSerializer(obj.GetType());
// 将对象序列化为XML
serializer.Serialize(stream, obj);
}
JSON序列化
使用JSON来序列化对象时,需要在C#代码中使用JSON.NET第三方库。
示例代码:
using Newtonsoft.Json;
using System.IO;
public void SerializeToJson(Stream stream, object obj)
{
// 将对象序列化为JSON
string json = JsonConvert.SerializeObject(obj);
// 将JSON写入流
using (StreamWriter sw = new StreamWriter(stream))
{
sw.Write(json);
}
}
反序列化
C#中进行反序列化的方式通常有以下两种:
XML反序列化
使用XML来反序列化对象时,需要在C#代码中使用System.Xml.Serialization.XmlSerializer
类。
示例代码:
using System.Xml.Serialization;
using System.IO;
public T DeserializeFromXml<T>(Stream stream)
{
// 创建XmlSerializer实例
XmlSerializer serializer = new XmlSerializer(typeof(T));
// 将XML反序列化为对象
return (T)serializer.Deserialize(stream);
}
JSON反序列化
使用JSON来反序列化对象时,需要在C#代码中使用JSON.NET第三方库。
示例代码:
using Newtonsoft.Json;
using System.IO;
public T DeserializeFromJson<T>(Stream stream)
{
// 从流中读取JSON
using (StreamReader sr = new StreamReader(stream))
{
string json = sr.ReadToEnd();
// 将JSON反序列化为对象
return JsonConvert.DeserializeObject<T>(json);
}
}
总结
通过上述示例可以看出,C#数据的序列化和反序列化非常简单。我们只需要使用适合的序列化方式,调用相应的API就能够很方便地完成序列化和反序列化的操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#数据的序列化和反序列化(推荐版) - Python技术站