asp.net序列化and反序列化演示
2023-06-13 09:14:02 时间
什么是序列化?
---.net的运行时环境用来支持用户定义类型的流化的机制。它是将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。
序列化的目的:
1、以某种存储形式使自定义对象持久化;
2、将对象从一个地方传递到另一个地方。
实质上序列化机制是将类的值转化为一个一般的(即连续的)字节流,然后就可以将该流写到磁盘文件或任何其他流化目标上。而要想实际的写出这个流,就要使用那些实现了IFormatter接口的类里的Serialize和Deserialize方法。
privateboolSerializeStudent(objectobj)
{
FileDialogfd=newSaveFileDialog();
if(fd.ShowDialog()==DialogResult.OK|fd.FileName!=null)
{
FileStreamfs=newFileStream(fd.FileName,FileMode.Create,FileAccess.Write);
System.Xml.Serialization.XmlSerializerxmlSer=newSystem.Xml.Serialization.XmlSerializer(obj.GetType());
xmlSer.Serialize(fs,obj);
fs.Close();
returntrue;
}
else
{
returnfalse;
}
}
privateobjectDeSerializeStudent(objectobj)
{
FileDialogfd=newOpenFileDialog();
objectobjStd;
if(fd.FileName!=null|fd.ShowDialog()==DialogResult.OK)
{
FileStreamfs=newFileStream(fd.FileName,FileMode.Open,FileAccess.Read,FileShare.Read);
System.Xml.Serialization.XmlSerializerxmlSer=newSystem.Xml.Serialization.XmlSerializer(obj.GetType());
objStd=xmlSer.Deserialize(fs);
fs.Close();
returnobjStd;
}
else
{
returnnull;
}
}
---.net的运行时环境用来支持用户定义类型的流化的机制。它是将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。
序列化的目的:
1、以某种存储形式使自定义对象持久化;
2、将对象从一个地方传递到另一个地方。
实质上序列化机制是将类的值转化为一个一般的(即连续的)字节流,然后就可以将该流写到磁盘文件或任何其他流化目标上。而要想实际的写出这个流,就要使用那些实现了IFormatter接口的类里的Serialize和Deserialize方法。
privateboolSerializeStudent(objectobj)
{
FileDialogfd=newSaveFileDialog();
if(fd.ShowDialog()==DialogResult.OK|fd.FileName!=null)
{
FileStreamfs=newFileStream(fd.FileName,FileMode.Create,FileAccess.Write);
System.Xml.Serialization.XmlSerializerxmlSer=newSystem.Xml.Serialization.XmlSerializer(obj.GetType());
xmlSer.Serialize(fs,obj);
fs.Close();
returntrue;
}
else
{
returnfalse;
}
}
privateobjectDeSerializeStudent(objectobj)
{
FileDialogfd=newOpenFileDialog();
objectobjStd;
if(fd.FileName!=null|fd.ShowDialog()==DialogResult.OK)
{
FileStreamfs=newFileStream(fd.FileName,FileMode.Open,FileAccess.Read,FileShare.Read);
System.Xml.Serialization.XmlSerializerxmlSer=newSystem.Xml.Serialization.XmlSerializer(obj.GetType());
objStd=xmlSer.Deserialize(fs);
fs.Close();
returnobjStd;
}
else
{
returnnull;
}
}
相关文章
- [.NET控件]Telerik RadControls for ASP.NET AJAX 2008 Q1 net 2.0 Web.UI「建议收藏」
- 宝塔面板Linux系统通过Docker部署VB.NET Asp.Net Core WebAPI应用
- ASP.NET Core技术--Identity Server 4 基础
- .net搭建ASP.NET应用程序在Linux系统上(linux搭建asp)
- .net利用MSSQL连接ASP.NET的办法探索(mssql 连接asp)
- 数据如何使用ASP操作MySQL数据库(asp怎么存取mysql)
- ASP 操作简单,快速修改MySQL数据库(asp修改mysql)
- net掌握Oracle中odpnet的重要性(Oracle中odp)
- asp.net下生成99个不同的随机数
- asp.net(c#)不可访问,因为它受保护级别限制
- asp.net替换和恢复html特殊字符
- asp.net日期函数某月的第一天和最后一天的日期
- .net读取项目AssemblyInfo.cs属性值
- asp.net(C#)动态添加非ASP的标准html控件(如添加Script标签)
- asp页面和Asp.net页面传中文参数UrlEncode编码以及接收解码
- asp.net下用Aspose.Wordsfor.NET动态生成word文档中的数据表格的方法
- PHP中调用ASP.NET的WebService的代码
- ASP.NET对无序列表批量操作的三种方法小结
- asp.net临时数据保存实现代码
- 答你所问.NET小常识方便学习asp.net的朋友
- Asp.net在三层架构中事务的使用实例代码
- ASP.NET递归法求阶乘解决思路
- Asp.net利用JQueryAJAX实现无刷新评论思路与代码
- 基于ASP.NET的lucene.net全文搜索实现步骤
- asp.net生成Excel并导出下载五种实现方法
- ASP.NET记录错误日志的实现方法
- asp.net的web页面(aspx)数据量过多时提交失败对策
- ASP.NET用户控件的使用介绍
- net操作access数据库示例分享
- C#中使用ADOMD.NET查询多维数据集的实现方法