ISerializable用法(初级)
来源:互联网 发布:淘宝有哪些官方手办店 编辑:程序博客网 时间:2024/05/16 04:31
家里只有一台电脑,影响老婆看电视剧了。赶紧拷贝完,洗袜子去...
不解释,看注释。
/* * Created by SharpDevelop. * User: iwateru * Date: 2012/12/15 * Time: 18:52 * * To change this template use Tools | Options | Coding | Edit Standard Headers. */using System;using System.IO;using System.Xml;using System.Runtime.Serialization;using System.Runtime.Serialization.Formatters.Binary;using System.Security.Permissions;namespace TestISerializable{/// <summary>/// SerialBase:继承自ISerializable/// </summary>[Serializable]public class SerialBase : ISerializable{public int n1;public int n2;public String str;public SerialBase(){}#region ISerializable Members/// <summary>/// 构造函数/// </summary>/// <param name="info"></param>/// <param name="context"></param>protected SerialBase(SerializationInfo info, StreamingContext context){n1 = info.GetInt32("n1");n2 = info.GetInt32("n2");str = info.GetString("str");}/// <summary>/// ISerializable接口函数/// </summary>/// <param name="info"></param>/// <param name="context"></param>[SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]public virtual void GetObjectData(SerializationInfo info, StreamingContext context){info.AddValue("n1", n1);info.AddValue("n2", n2);info.AddValue("str", str);}#endregion}[Serializable]public class SerialDerived : SerialBase{public int num;public SerialDerived() : base(){}#region ISerializable Members/// <summary>/// 构造函数/// </summary>/// <param name="si"></param>/// <param name="context"></param>protected SerialDerived(SerializationInfo si, StreamingContext context) : base(si, context){num = si.GetInt32("num");}/// <summary>/// ISerializable接口函数/// </summary>/// <param name="si"></param>/// <param name="context"></param>[SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]public override void GetObjectData(SerializationInfo si, StreamingContext context){base.GetObjectData(si, context);si.AddValue("num", num);}#endregion}class Program{/// <summary>/// 保存/// </summary>public static void SerializeBinary(){SerialDerived obj = new SerialDerived();obj.n1 = 123;obj.n2 = 234;obj.str = "dsojgoajd";obj.num = 333;FileStream stream = new FileStream("test.bin", FileMode.Create);BinaryFormatter b = new BinaryFormatter();b.Serialize(stream, obj);stream.Close();}/// <summary>/// 读取/// </summary>public static void DeserializeBinary(){SerialDerived obj = new SerialDerived();FileStream stream = new FileStream("test.bin", FileMode.Open, FileAccess.Read, FileShare.Read);BinaryFormatter b = new BinaryFormatter();obj = b.Deserialize(stream) as SerialDerived;Console.WriteLine(obj.n1);Console.WriteLine(obj.n2);Console.WriteLine(obj.str);Console.WriteLine(obj.num);stream.Close();}public static void Main(string[] args){// TODO: Implement Functionality Here// 保存并且读取为二进制文件SerializeBinary();DeserializeBinary();Console.Write("Press any key to continue . . . ");Console.ReadKey(true);}}}
- ISerializable用法(初级)
- ISerializable
- Swift3.0-初级用法(适合初学者)
- c# [Serializable] ISerializable
- 视图的初级用法。
- XMLHttpRequest初级用法
- log4net初级用法
- Handler初级用法
- delphi 一些初级用法
- QML初级用法
- Android JNI 初级用法
- ButterKnife初级用法
- ValueAnimation初级用法
- PullTorefreshListView初级用法
- 属性动画初级用法
- Dagger2初级用法
- bootstrap-table 初级用法(个人笔记使用)
- 使用ISerializable自定义序列化
- java实现杨辉三角
- android:gravity 和 android:layout_Gravity的区别
- 求最大公约数
- 枚举类型
- 牛刀小试——标题|菜单同行显示的两种实现方式
- ISerializable用法(初级)
- 防止JAVA代码被反编译的方法
- Linux 嵌入式驱动开发 -- 环境搭建及模块编程初步
- c++ 读取某个文件夹下的所有文件
- 在ubuntu 12.04 下搭建mini2440开发环境
- 查看论文
- 寒假前刷题(9)搜索系列 bfs hdu 1312
- PC-lint安装与集成(检查Unix环境代码)(一)
- 【NPC】18、团问题规约到子图同构问题