序列化範例
更新:2007 年 11 月
這個方案示範如何將物件序列化和還原序列化。
若要取得範例及其安裝指示
請執行下列其中一項或多項作業:
按一下 [說明] 功能表上的 [範例]。
讀我檔案會顯示範例的相關資訊。
造訪 Visual Studio 2008 範例 網站 (英文)。您可以在此找到最新版的範例。
在已安裝 Visual Studio 的電腦中尋找範例。根據預設,範例和讀我檔案會安裝在 drive:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid 中。如果是 Visual Studio Express 版,則所有範例都能在線上找到。
如需詳細資訊,請參閱尋找範例檔案。
安全性注意事項: |
---|
範例程式碼可說明整個概念,並顯示和此概念相關的程式碼。此程式碼可能不符合特定環境的安全性要求,您也不應該以範例所示的方法使用此程式碼。我們建議您新增安全性及錯誤處理程式碼,讓您的專案更安全完善。Microsoft 提供的程式碼未經修改,並且不對任何可能造成的後果負任何責任。 |
若要執行這個範例
- 按 F5。
示範
這個應用程式包含兩個類別,一個含標準序列化,另一個則含自訂序列化。使用者介面包括將兩個類別序列化和還原序列化的按鈕。含標準序列化的類別可以序列化為 SOAP 檔案或二進位檔案,而含自訂序列化的類別會序列化為 SOAP 檔案。TextBox 控制項是用於顯示 SOAP 檔案。這兩個類別都具有 SerializableAttribute 屬性。請參閱下表描述的類別。
類別成員 |
SerializationClass |
CustomSerializationClass |
---|---|---|
PublicVariable |
該公用變數是在未變更的情況下序列化及還原序列化。 |
該公用變數是在未變更的情況下序列化及還原序列化。 |
PublicProperty |
支援屬性的私用變數會在不變更的情形下進行序列化和還原序列化。 |
不管使用者介面中的值設定為何,支援屬性的私用變數都會序列化為 -1。因此,它會還原序列化為 -1。 |
NonSerializedVariable |
這個變數不會序列化,因為已用 NonSerializedAttribute 加以標記。公用變數不會序列化,而且已還原序列化的值為 0。 |
因為自訂序列化會覆寫這個設定,雖然變數已由 NonSerializedAttribute 標記,它還是會進行序列化。公用變數是在未變更的情況下序列化及還原序列化。 |
三種型別的序列化示範如下:
SOAP 格式:Class1 是使用 SoapFormatter 類別來序列化。
二進位格式:Class1 是使用 BinaryFormatter 類別來序列化。
自訂格式:Class2 會實作 ISerializable 介面,包括執行自訂序列化的 GetObjectData 方法。