- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章 序列化
基于C#的 .NET Framework程序设计 第10章 数据流和文件 第11章 Internet访问 第12章 序列化 第13章 远程处理和XML Web Service 第14章 线程和异步编程 第15章 托管代码与非托管代码之间的互操作 第16章 使用Microsoft ADO.NET 访问数据 第17章 属性 第12章 序列化 使用序列化的场景 序列化属性 对象图 序列化过程 序列化示例 反序列化示例 自定义序列化 自定义序列化示例 安全问题 使用序列化的场景 持久化 把对象图形存储到文件,或从文件中取得对象图形 远程调用 在进程之间以值方式传递参数时需要序列化 第12章 序列化 使用序列化的场景 序列化属性 对象图 序列化过程 序列化示例 反序列化示例 自定义序列化 自定义序列化示例 安全问题 序列化属性 用 Serializable 属性使类可序列化 用 NonSerialized 属性来使类的部分成员不被序列化 通过实现 ISerializable接口来提供自定义序列化 第12章 序列化 使用序列化的场景 序列化属性 对象图 序列化过程 序列化示例 反序列化示例 自定义序列化 自定义序列化示例 安全问题 对象图 第12章 序列化 使用序列化的场景 序列化属性 对象图 序列化过程 序列化示例 反序列化示例 自定义序列化 自定义序列化示例 安全问题 序列化过程 默认序列化过程 ObjectIDGenerator 类用来产生对象的 ID 当对象被反序列化时,ObjectManager 类跟踪对象 可以把类序列化为 文件流 ( FileStream )、内存流 ( MemoryStream ) 和网络流 ( NetworkStream ) Formatter类能以指定格式对输入输出流进行读写 运行时提供了 BinaryFormatter 和 SoapFormatter 派生类 第12章 序列化 使用序列化的场景 序列化属性 对象图 序列化过程 序列化示例 反序列化示例 自定义序列化 自定义序列化示例 安全问题 序列化示例 第12章 序列化 使用序列化的场景 序列化属性 对象图 序列化过程 序列化示例 反序列化示例 自定义序列化 自定义序列化示例 安全问题 反序列化示例 第12章 序列化 使用序列化的场景 序列化属性 对象图 序列化过程 序列化示例 反序列化示例 自定义序列化 自定义序列化示例 安全问题 自定义序列化 通过实现ISerializable接口来实施自定义序列化 当反序列化后一些对象不再有效时 当一些数据必须通过计算来取得时 实现ISerializable接口,要求 实现GetObjectData 方法, 该方法在序列化时被调用,它返回SerializationInfo类型的PropertyBag PropertyBag包含被序列化的对象类型和被序列化的名称/对象对 以SerializationInfo作为参数构造函数,在反序列化时被调用,它使用 SerializationInfo类来重建对象状态 第12章 序列化 使用序列化的场景 序列化属性 对象图 序列化过程 序列化示例 反序列化示例 自定义序列化 自定义序列化示例 安全问题 自定义序列化示例 [Serializable] public class ExampleFoo : ISerializable { public int i, j, k; public ExampleFoo() {} internal ExampleFoo(SerializationInfo si, StreamingContext context) { //恢复标量值。 i = si.GetInt32(i); j = si.GetInt32(j); k = si.GetInt32(k); } ? public void GetObjectData(SerializationInfo si, StreamingContext context) { //SerializationInfo – 本质上是一个PropertyBag ? //添加三个标量值; si.AddValue(i, i); si.AddValue(j, j); si.AddValue(k, k); ? Type t = this.GetType(); si.AddValue(TypeObj, t); } } 第12章 序列化 使用序列化的场景 序列化属性 对象图 序列化过程 序列化示例 反序列化示例 自定义序列化 自定义
文档评论(0)