码迷,mamicode.com
首页 > Web开发 > 详细

.net学习笔记--序列化与反序列化

时间:2014-08-08 23:39:26      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   使用   io   文件   数据   

序列化其实就是将一个对象的所有相关的数据保存为一个二进制文件(注意:是一个对象)

而且与这个对象相关的所有类型都必须是可序列化的所以要在相关类中加上 [Serializable]特性

对象类型包括:对象本神包含的类型,父类

拥有需要的对象之后:1.将对象转换为二进制数据 使用专门的对像进行转换 BinaryFormatter

                                     2.将二进制数据写入到文件 FileSteam

反序列化则是把二进制文件转换为一个对象

例子代码如下:

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using System.IO;
 7 using System.Runtime.Serialization.Formatters.Binary;
 8 namespace ConsoleApplication1
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             Person per;//将要被序列化的对象
15             Console.WriteLine("------序列化与反序列化------");
16             Console.WriteLine("是否读取已经序列化的对象per");
17             string str = Console.ReadLine();
18             if (str == "yes")
19             {
20                 if (!File.Exists("save.bin"))
21                 {
22                     Console.WriteLine("你还没有将per序列化");
23                     return;
24                 }
25                 using (FileStream fs = new FileStream("save.bin", FileMode.Open))
26                 {
27                     BinaryFormatter bf = new BinaryFormatter();
28                     per = bf.Deserialize(fs) as Person;//将二进制数据转换为per对象
29                     per.SayHi();
30                     Console.ReadLine();
31                 }
32             }
33             else
34             {
35                 per = new Person();
36                 per.Name = "小李";
37                 using(FileStream fs=new FileStream("save.bin",FileMode.Create))
38                 {
39                     BinaryFormatter bf = new BinaryFormatter();
40                     bf.Serialize(fs,per);//将per对象转换成二进制数据,并保存。
41                     Console.WriteLine("序列化成功");
42                     Console.ReadLine();
43                 }
44             }
45                 
49         }
50     }
51     [Serializable]
52     class Person
53     {
54         public string Name;
55         public void SayHi()
56         {
57             Console.WriteLine("hello {0}",Name);
58         }
59     }
60 }

 

.net学习笔记--序列化与反序列化,布布扣,bubuko.com

.net学习笔记--序列化与反序列化

标签:des   style   blog   color   使用   io   文件   数据   

原文地址:http://www.cnblogs.com/CodeFaker/p/3900133.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!