下面就来详细讲解一下“C# 三种序列化方法分享”的完整攻略。首先先介绍一下序列化的概念。
序列化
序列化就是将对象转化为可以存储或传输的格式,常见的格式有 XML、JSON 等。在 C# 中,可以借助 .NET Framework 自带的序列化类库实现序列化和反序列化,主要包括以下几个类:
- BinaryFormatter
- SoapFormatter
- XmlSerializer
- DataContractSerializer
- JavaScriptSerializer
- JsonSerializer
接下来,就来详细介绍一下这三种序列化方法。
1. BinaryFormatter
BinaryFormatter 是将对象序列化为二进制格式,并存储为文件或传输。下面是一个示例代码。
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
class Person
{
public int age;
public string name;
}
class Program
{
static void Main(string[] args)
{
Person person = new Person { age = 20, name = "张三" };
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream fs = new FileStream("person.bin", FileMode.Create))
{
formatter.Serialize(fs, person);
}
}
}
在代码中,我们定义了一个 Person 类,然后创建了一个 Person 对象并设置了其属性,最后使用 BinaryFormatter 将其序列化为二进制格式并存储到文件中。
2. XmlSerializer
XmlSerializer 是将对象序列化为 XML 格式,并存储为文件或传输。下面是一个示例代码。
using System;
using System.IO;
using System.Xml.Serialization;
[Serializable]
class Person
{
public int age;
public string name;
}
class Program
{
static void Main(string[] args)
{
Person person = new Person { age = 20, name = "张三" };
XmlSerializer serializer = new XmlSerializer(typeof(Person));
using (FileStream fs = new FileStream("person.xml", FileMode.Create))
{
serializer.Serialize(fs, person);
}
}
}
在代码中,我们同样定义了一个 Person 类,然后创建了一个 Person 对象并设置了其属性,最后使用 XmlSerializer 将其序列化为 XML 格式并存储到文件中。
3. DataContractSerializer
DataContractSerializer 是一种用于序列化和反序列化对象的类,它将对象序列化为 XML 或 JSON 格式,并存储为文件或传输。下面是一个示例代码。
using System;
using System.IO;
using System.Runtime.Serialization;
[DataContract]
class Person
{
[DataMember]
public int age;
[DataMember]
public string name;
}
class Program
{
static void Main(string[] args)
{
Person person = new Person { age = 20, name = "张三" };
DataContractSerializer serializer = new DataContractSerializer(typeof(Person));
using (FileStream fs = new FileStream("person.xml", FileMode.Create))
{
serializer.WriteObject(fs, person);
}
}
}
在代码中,我们同样定义了一个 Person 类并在其中使用 DataContract 和 DataMember 注解定义了其字段的序列化属性,然后创建了一个 Person 对象并设置了其属性,最后使用 DataContractSerializer 将其序列化为 XML 格式并存储到文件中。
以上就是三种序列化方法的详细攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 三种序列化方法分享 - Python技术站