.NET 開發基金會/序列化
| .NET 開發基金會 | |
|---|---|
考試目標:在 .NET Framework 應用程式中實現序列化和輸入/輸出功能
維基百科對序列化的定義是:“在資料儲存和傳輸的背景下,序列化是將物件儲存到儲存介質(如檔案或記憶體緩衝區)或透過網路連線連結以二進位制形式傳輸的過程”。
這裡解決的問題是,物件由正在執行的程序建立,因此與該程序例項的生命週期繫結。如果由於任何原因,並且可能有許多原因,您想在另一個程序例項的上下文中“傳輸”該物件,那麼您就遇到了一個問題,您透過在原始程序中“儲存”物件的 state 並在目標程序中“恢復”它來解決。這個“儲存”部分稱為序列化,而“恢復”部分稱為反序列化。
如果物件的類名字首為 [Serializable] 屬性,則該物件是可序列化的。
可以使用 BinaryFormatter 類 來序列化物件。要序列化,請使用 BinaryFormatter 的 Serialize() 方法,該方法接受一個流和一個可序列化物件作為引數。要反序列化,請使用 BinaryFormatter 的 Deserialize() 方法,該方法接受一個流作為引數,並返回一個可以轉換回原始物件型別的物件。請記住,在使用完流後,透過呼叫流的 Close() 方法來關閉流。
可以使用 XmlSerializer 類 來序列化物件。要序列化,請使用 XmlSerializer 的 Serialize() 方法,該方法接受一個流和一個可序列化物件作為引數。要反序列化,請使用 XmlSerializer 的 Deserialize() 方法,該方法接受一個流作為引數,並返回一個可以轉換回原始物件型別的物件。請記住,在使用完流後,透過呼叫流的 Close() 方法來關閉流。
有關 XML 和 SOAP 序列化的概述,請參閱 MSDN
ISerializable 介面允許物件控制其自身的序列化和反序列化。
格式化器用於將物件序列化為流。
有關隔離儲存任務的常規討論,請參閱 MSDN
考試目標:使用執行時序列化技術序列化或反序列化物件或物件圖。
(參考 System.Runtime.Serialization 名稱空間)
IDeserializationCallback 介面 - MSDN
IFormatter 介面和 IFormatterConverter 介面
- IFormatter 介面 - MSDN
- IFormatterConverter 介面 - MSDN
ISerializable 介面 - MSDN
- 例如,有關一些序列化屬性,請參閱 MSDN
OnDeserializedAttribute 類和 OnDeserializingAttribute 類
- OnDeserializedAttribute 類 - MSDN
- OnDeserializingAttribute 類 - MSDN
OnSerializedAttribute 類和 OnSerializingAttribute 類
- OnSerializedAttribute 類 - MSDN
- OnSerializingAttribute 類 - MSDN
OptionalFieldAttribute 類 - MSDN
SerializationEntry 結構 - MSDN
SerializationInfo 類 - MSDN
ObjectManager 類 - MSDN
Formatter 類 - MSDN
FormatterConverter 類 - MSDN
FormatterServices 類 - MSDN
StreamingContext 結構 - MSDN
考試目標:使用 System.Xml.Serialization 名稱空間控制物件序列化為 XML 格式。
XmlSerializer 類 - MSDN
- 考試目標:使用 XmlSerializer 類將物件序列化和反序列化為 XML 格式。
使用序列化屬性控制序列化 - MSDN
- 有關控制序列化的屬性列表,請參閱 MSDN
實現 XML 序列化介面以提供 XML 序列化的自定義格式 - MSDN
System.Xml.Serialization 名稱空間提供委託和事件處理程式 - MSDN
考試目標:使用序列化格式化程式類實現自定義序列化格式。
SoapFormatter 類 - MSDN
- (參閱 System.Runtime.Serialization.Formatters.Soap 名稱空間)
BinaryFormatter 類 - MSDN
- (參閱 System.Runtime.Serialization.Formatters.Binary 名稱空間
考試目標:使用檔案系統類訪問檔案和資料夾。
(參閱 System.IO 名稱空間)
File 類和 FileInfo 類
- 有關常見的 IO 任務,請參閱 MSDN
- File 類 - MSDN
- FileInfo 類 - MSDN
Directory 類和 DirectoryInfo 類
- Directory 類 - MSDN
- DirectoryInfo 類 - MSDN
DriveInfo 類和 DriveType 列舉
- DriveInfo 類 - MSDN
- DriveType 列舉 - MSDN
FileSystemInfo 類和 FileSystemWatcher 類
- FileSystemInfo 類
- FileSystemWatcher 類
- FileSystemWatcher 類旨在檢測檔案系統中的更改。
- 它可以使用 Filter 和 Path 屬性進行引數化。
Example: FileSystemWatcher w = new FileSystemWatcher(); w.Filter = "*.txt"; w.Path = @"C:\Windows";
- Filter 屬性僅用於檢查檔名的模式。因此,不要在那裡使用目錄路徑。
- 您可以新增諸如 WaitForChanged(..) 之類的方法來監視指定區域的更改。
Path 類 - MSDN
- System.IO.Path 類具有許多用於建立和解析資源路徑的有用的靜態方法。
ErrorEventArgs 類和 ErrorEventHandler 委託
- ErrorEventArgs 類 - MSDN
- ErrorEventHandler 委託 - MSDN
RenamedEventArgs 類和 RenamedEventHandler 委託
- RenamedEventArgs 類 - MSDN
- RenamedEventHandler 委託 - MSDN
考試目標:使用 Stream 類管理位元組流。
(參閱 System.IO 名稱空間)
FileStream 類 - MSDN
Stream 類 - MSDN
- System.IO.Stream 是所有其他流繼承的抽象基類。不可能例項化 Stream 類。而是使用從 Stream 派生的其他類之一。
- 就 70-536 考試目標而言,從 Stream 派生的最重要的類是
- System.IO.FileStream
- System.IO.MemoryStream
- System.IO.Compression.DeflateStream
- System.IO.Compression.GZipStream
- System.Security.Cryptography.CryptoStream
- System.IO.BufferedStream
- 有關從 Stream 派生的類的完整列表,請參閱 MSDN。
- 有關檔案和流 IO 的討論,請參閱 MSDN。
MemoryStream 類 - MSDN
BufferedStream 類 - MSDN
考試目標:使用 Reader 和 Writer 類管理 .NET Framework 應用程式資料。
(參閱 System.IO 名稱空間)
StringReader 類和 StringWriter 類 - MSDN 和 MSDN
- StringReader 和 StringWriter 繼承自 TextReader/TextWriter。
- StringReader 是用於字串的 TextReader。
- StringWriter 是用於字串的 TextWriter。
TextReader 類和 TextWriter 類
- TextReader 類 - MSDN
- TextReader 和 TextWriter 是抽象基類,StreamReader、StreamWriter、StringReader 和 StringWriter 繼承自它們。StreamReader 和 StringReader 繼承自 TextReader。StreamWriter 和 StringWriter 繼承自 TextWriter。
- TextWriter 類 - MSDN
StreamReader 類和 StreamWriter 類 - MSDN 和 MSDN
- StreamReader 和 StreamWriter 類提供用於讀取和寫入基於字元的流的基本功能(ReadLine()、WriteLine()、ReadToEnd())。
- StreamReader 和 StreamWriter 繼承自抽象類 TextReader 和 TextWriter。
- StreamReader 是流的 TextReader。
- StreamWriter 是流的 TextWriter。
- StreamReader 的 Peek 和 Read 方法
- Peek 方法獲取特定位置的字元,但不移動。
- Read 方法獲取特定位置的字元並移動。
BinaryReader 類和 BinaryWriter 類
- BinaryReader 類 - MSDN
- BinaryWriter 類 - MSDN
考試目標:在 .NET Framework 應用程式中壓縮或解壓縮流資訊,並使用隔離儲存提高應用程式資料的安全性。
(參考 System.IO.Compression 名稱空間)
(參考 System.IO.IsolatedStorage 名稱空間)
IsolatedStorageFile 類 - MSDN
IsolatedStorageFileStream 類 - MSDN
DeflateStream 類 - MSDN
GZipStream 類 - MSDN