在 C# 中,序列化是將對(duì)象轉(zhuǎn)換為字節(jié)流的過程,以便將其保存到內(nèi)存,文件或數(shù)據(jù)庫。序列化的反向過程稱為反序列化。
序列化可在遠(yuǎn)程應(yīng)用程序的內(nèi)部使用。
要序列化對(duì)象,需要將SerializableAttribute
屬性應(yīng)用在指定類型上。如果不將SerializableAttribute
屬性應(yīng)用于類型,則在運(yùn)行時(shí)會(huì)拋出SerializationException
異常。
下面看看 C# 中序列化的簡單例子,在這個(gè)示例中將序列化Student
類的對(duì)象。在這里使用BinaryFormatter.Serialize(stream,reference)
方法來序列化對(duì)象。
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();
}
}
執(zhí)行上面示例代碼后,應(yīng)該可以在F:\worksp\csharp目錄看到創(chuàng)建了一個(gè)文件:serialize.txt,里邊有記錄對(duì)象的相關(guān)信息。內(nèi)容如下所示 -