C#序列化

在 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,裏邊有記錄對象的相關信息。內容如下所示 -

C#序列化