黑马程序员技术交流社区
标题:
c#中什么是序列化和反序列化
[打印本页]
作者:
醉红尘_碎星辰
时间:
2013-11-5 17:43
标题:
c#中什么是序列化和反序列化
中什么是序列化和反序列化
作者:
张小康
时间:
2013-11-5 17:51
序列化就是将数据转化为二进制用于数据的传递
反序列化就是将接受到的二进制形式的数据转换成原来的数据类型
作者:
佟嘉豪
时间:
2013-11-5 18:19
序列化就是将数据转化为二进制用于数据的传递
反序列化就是将接受到的二进制形式的数据转换成原来的数据类型
如果一个类需要序列化,在定义类的上面加【serilizeable 】
之后在main中,对类实例化出来的对象 通过binaryfomate 将其序列化成2进制
反序列化,通过Inbinaryformate 将2进制反序列化成对象
本人在实际项目中 没有应用过 不知道怎么用
作者:
何俞平
时间:
2013-11-5 18:49
序列化就是将对象转化为二进制,反序列化就是将二进制形式的数据转换成原来的数据类型,序列化和反序列用于传输数据,例如网络数据的传输。
下面是一个序列化和反序列化的例子:(模拟传输数据)
//序列化:将对象转换为二进制
//服务器端
//假设一个Person类,有Name,Age,Gender属性
Person per = new Person();
per.Name = "张三";
per.Age = 10;
per.Gender = '男';
using (FileStream fsWrite = new FileStream(@"C:\Users\Administrator\Desktop\序列化.txt", FileMode.OpenOrCreate, FileAccess.Write))
{
// //创建序列化对象
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fsWrite, per);
}
Console.WriteLine("序列化成功");
Console.ReadKey();
//接收端
////反序列化:将二进制转换为对象
Person per;
using (FileStream fsRead = new FileStream(@"C:\Users\Administrator\Desktop\序列化.txt", FileMode.Open, FileAccess.Read))
{
BinaryFormatter bf = new BinaryFormatter();
per = (Person)bf.Deserialize(fsRead);
}
Console.WriteLine(per.Name);
Console.WriteLine(per.Gender);
Console.WriteLine(per.Age);
Console.ReadKey();
作者:
dashanren
时间:
2013-11-6 12:50
序列化就是把一个对象保存到一个文件或数据库字段中或内存中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。
当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为对象。
把对象转换为字节序列的过程称为对象的序列化。
把字节序列恢复为对象的过程称为对象的反序列化。
对象的序列化主要有两种用途:
1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;
2) 在网络上传送对象的字节序列。
序列化和反序列化的主要作用有:
1、在进程下次启动时读取上次保存的对象的信息
2、在不同的AppDomain或进程之间传递数据
3、在分布式应用系统中传递数据
.............
常见的序列化的方法:
1、BinaryFormatter
2、SoapFormatter
3、XML序列化
优缺点比较::
二进制序列化的优点:
1. 所有的类成员(包括只读的)都可以被序列化;
2. 性能非常好。
XML序列化的优点:
1. 互操作性好;
2. 不需要严格的二进制依赖;
3. 可读性强
SoapFormatter微软淘汰了,,不能序列化泛型。
作者:
陈行
时间:
2013-11-6 17:38
楼主 问题解决了记得把问题改成已解决啊
作者:
黑飞马
时间:
2013-11-6 21:22
序列化:就是将对象的状态转化为可保持或是传输格式的过程。
反序列化:它是与序列化相反的过程,它是将流转化为对象。
可以使用Serializable属性将类标记为可序列化,在序列化的类中用NonSerialized属性标记成员变量,来防止这些成员变量被序列化。
实质上序列化就是利用格式化程序如二进制格式化程序BinaryFormatter的Serialize方法将类的值转换为一个一般的(即连续的)字节流,然后将这个流写到磁盘文件或其他流化目标上,最后利用格式化程序如BinaryFormattor的Deserialize方法可将对象还原成以前的状态。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2