在 C# 中,序列化是將物件轉換為位元組流的過程,以便將其儲存到記憶體,檔案或資料庫。序列化的反向過程稱為反序列化。
序列化可在遠端應用程式的內部使用。
要序列化物件,需要將SerializableAttribute
屬性應用在指定型別上。如果不將SerializableAttribute
屬性應用於型別,則在執行時會丟擲SerializationException
異常。
下面看看 C# 中序列化的簡單例子,在這個範例中將序列化Student
類的物件。在這裡使用BinaryFormatter.Serialize(stream,reference)
方法來序列化物件。
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
class Student
{
int rollno;
string name;
public Student(int rollno, string name)
{
this.rollno = rollno;
this.name = name;
}
}
public class SerializeExample
{
public static void Main(string[] args)
{
FileStream stream = new FileStream("F:\\worksp\\csharp\\serialize.txt", FileMode.OpenOrCreate);
BinaryFormatter formatter = new BinaryFormatter();
Student s = new Student(1010, "Curry");
formatter.Serialize(stream, s);
stream.Close();
}
}
執行上面範例程式碼後,應該可以在F:\worksp\csharp目錄看到建立了一個檔案:serialize.txt,裡邊有記錄物件的相關資訊。內容如下所示 -