C#二进制序列化

C#二进制序列化

ID:43705314

大小:79.50 KB

页数:11页

时间:2019-10-13

C#二进制序列化_第1页
C#二进制序列化_第2页
C#二进制序列化_第3页
C#二进制序列化_第4页
C#二进制序列化_第5页
资源描述:

《C#二进制序列化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、序列化基础知识什么是序列化(Serialization)序列化可被定义为将对象的状态存储到存储媒介中的过程序列化:对象的公共字段和私有字段以及类的名称(包括包含该类的程序集)都被转换为字节流,然后写入数据流反序列化:创建原始对象的精确复本为何使用序列化将对象的状态永久保存在存储媒体中,以便可以在以后重新创建精确的副本通过值将对象从一个应用程序域发送到另一个应用程序域中基本序列化//step1:定义一个支持序列化的类[Serializable]publicclassMyObject{publicintn

2、1=0;publicintn2=0;publicStringstr=null;}//step2:将对象序列化到文件中MyObjectobj=newMyObject();obj.n1=1;obj.n2=24;obj.str="SomeString";IFormatterformatter=newBinaryFormatter();Streamstream=newFileStream("MyFile.bin",FileMode.Create,FileAccess.Write,FileShare.None)

3、;formatter.Serialize(stream,obj);stream.Close();//step3:在需要时从文件中反序列化对象IFormatterformatter=newBinaryFormatter();Streamstream=newFileStream("MyFile.bin",FileMode.Open,FileAccess.Read,FileShare.Read);MyObjectobj=(MyObject)formatter.Deserialize(stream);stre

4、am.Close();//Here'stheproof.Console.WriteLine("n1:{0}",obj.n1);Console.WriteLine("n2:{0}",obj.n2);Console.WriteLine("str:{0}",obj.str);二进制序列化BinaryFormatter可以非常有效地为对象生成简洁的字节流,对于序列化将在.NETFramework上被反序列化的对象而言十分理想(即不需要移植)在反序列化一个对象时不调用构造函数如果需要可移植,需要用SoapFor

5、matter代替Serializable属性不能被继承,即使父类有这属性,子类也必须手动添加,若一个对象中包含子对象,子对象也必须是SerializableXML序列化将对象序列化到XML文档中和从XML文档中反序列化对象对象中的数据是用编程语言构造来描述的,如类、字段、属性(Property)、基元类型、数组,甚至XmlElement或XmlAttribute对象形式的嵌入XMLXML序列化仅将对象的公共字段和属性值序列化为XML流。XML序列化不包括类型信息//类的定义,不需要加Serializa

6、ble属性publicclassMyClass{publicMyObjectMyObjectProperty;}publicclassMyObject{publicstringObjectName;}//序列化后的XML片段MyString实验三数据保存、恢复的实现在FormClosing中Serialize在Form_Load中DeSeri

7、alize序列化的对象?逐系整个Treeview别忘了?!——为Student类添加Serializable属性标记[Serializable]//指示此类可以系列化publicclassstudent{publicstringno;publicstringname;publicboolsex;publicstringaddress;publicstringphone;publicstudent(stringno,stringname,boolsex,stringaddress,stringphone

8、){this.no=no;this.name=name;this.sex=sex;this.address=address;this.phone=phone;}}privatevoidSerialize()//序列化(写入文件){FileStreamfs=newFileStream("DataFile.dat",FileMode.Create);BinaryFormatterformatter=newBinaryFormatter();try{forma

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。