.NET 的序列化

序列化是將物件的狀態轉換成可保存或傳輸之形式的程序。 序列化的互補方法是還原序列化,它將資料流轉換成為物件。 將這些處理序搭配使用,即可輕鬆儲存與傳輸資料。

.NET 提供下列序列化技術:

  • JSON 序列化可將 .NET 物件與 JavaScript 物件標記法 (JSON) 進行來回對應。 JSON 是一種開放標準,通常用來在網路上共用資料。 JSON 序列化程式依預設會序列化公用屬性,也可以設定為序列化私人和內部成員。

  • XML 和 SOAP 序列化僅對 public 屬性與欄位進行序列化,且不保留型別精確度。 當您不想限制使用資料的應用程式,而能提供或使用資料時,這種做法就很有用。 因為 XML 為開放標準,因此是在 Web 上共用資料的很好選擇。 同樣是開放標準的 SOAP,也是一項很好的選擇。

  • 二進位序列化保留型別精確度,這表示系統會記錄物件的完整狀態,且會在還原序列化時建立精確的複本。 此型別的序列化作業適合保留應用程式中不同叫用之間的物件狀態。 例如,藉由將物件序列化至剪貼簿,就可在不同應用程式之間共用該物件。 您可以將物件序列化為資料流、序列化至磁碟、記憶體、在網路上序列化等等。 在遠端使用序列化從一台電腦或應用程式定義域,以「值」傳遞物件至他處。

    警告

    使用 BinaryFormatter 進行二進位序列化可能很危險。 如需詳細資訊,請參閱 BinaryFormatter 安全性指南

參考

System.Text.Json
所包含的類別可用來將物件序列化為 JSON 格式文件或資料流。

System.Runtime.Serialization
包含類別,可以用來序列化和還原序列化物件。

System.Xml.Serialization
包含可用來將物件序列化為 XML 格式之文件或資料流的類別。