在 C# 中,可以使用序列化和反序列化來將對象轉換為字節流或將字節流轉換為對象。這些操作可以幫助我們在不同系統之間傳輸對象或將對象保存到文件中。
以下是一個簡單的示例,展示如何在 C# 中進行類的序列化和反序列化:
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
Person person = new Person { Name = "Alice", Age = 30 };
// 序列化對象
IFormatter formatter = new BinaryFormatter();
using (Stream stream = new FileStream("person.dat", FileMode.Create, FileAccess.Write, FileShare.None))
{
formatter.Serialize(stream, person);
}
// 反序列化對象
using (Stream stream = new FileStream("person.dat", FileMode.Open, FileAccess.Read, FileShare.Read))
{
Person deserializedPerson = (Person)formatter.Deserialize(stream);
Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
}
}
}
在上面的示例中,我們定義了一個 Person
類,并對其進行了序列化和反序列化操作。序列化使用 BinaryFormatter
類,將 Person
對象保存到文件中。反序列化則是通過將文件中的字節流轉換回 Person
對象。
需要注意的是,要使一個類可以序列化,需要在類的定義上加上 [Serializable]
特性。除了使用 BinaryFormatter
進行序列化和反序列化外,還可以使用其他序列化方式,如 XML 序列化、JSON 序列化等。