C#序列化


在 C# 中,序列化是將物件轉換為位元組流的過程,以便將其儲存到記憶體,檔案或資料庫。序列化的反向過程稱為反序列化。

序列化可在遠端應用程式的內部使用。

C# SerializableAttribute

要序列化物件,需要將SerializableAttribute屬性應用在指定型別上。如果不將SerializableAttribute屬性應用於型別,則在執行時會丟擲SerializationException異常。

C# 序列化範例

下面看看 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,裡邊有記錄物件的相關資訊。內容如下所示 -