在C#中,要對類進行序列化操作,首先需要確保類實現了Serializable
接口。Serializable
接口是一個標記接口,沒有任何方法需要實現。它告訴序列化系統該類的對象可以被序列化。
下面是一個簡單的示例,演示了如何對一個包含屬性和實現了Serializable
接口的類進行序列化:
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 = "John Doe",
Age = 30
};
// 序列化對象
IFormatter formatter = new BinaryFormatter();
using (FileStream fileStream = new FileStream("person.bin", FileMode.Create))
{
formatter.Serialize(fileStream, person);
}
// 反序列化對象
using (FileStream fileStream = new FileStream("person.bin", FileMode.Open))
{
Person deserializedPerson = (Person)formatter.Deserialize(fileStream);
Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
}
}
}
在這個示例中,我們創建了一個名為Person
的類,并為其添加了Name
和Age
屬性。然后,我們使用BinaryFormatter
類將Person
對象序列化到名為person.bin
的文件中。接下來,我們從該文件中反序列化Person
對象,并將其輸出到控制臺。
需要注意的是,BinaryFormatter
類已經過時,可能在未來的.NET版本中被移除。在實際項目中,建議使用其他序列化庫,如Json.NET
(現已被命名為Newtonsoft.Json)或System.Text.Json
。這些庫提供了更多的功能和更好的性能。