.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