欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.net 序列化and反序列化演示

程序员文章站 2022-07-06 18:01:24
什么是序列化? ---.net的运行时环境用来支持用户定义类型的流化的机制。它是将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(...
什么是序列化?
---.net的运行时环境用来支持用户定义类型的流化的机制。它是将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。
序列化的目的:
1、以某种存储形式使自定义对象持久化;
2、将对象从一个地方传递到另一个地方。
实质上序列化机制是将类的值转化为一个一般的(即连续的)字节流,然后就可以将该流写到磁盘文件或任何其他流化目标上。而要想实际的写出这个流,就要使用那些实现了iformatter接口的类里的serialize和deserialize方法。
private bool serializestudent(object obj)
{
filedialog fd = new savefiledialog();
if (fd.showdialog() == dialogresult.ok | fd.filename != null)
{
filestream fs = new filestream(fd.filename, filemode.create, fileaccess.write);
system.xml.serialization.xmlserializer xmlser = new system.xml.serialization.xmlserializer(obj.gettype());
xmlser.serialize(fs, obj);
fs.close();
return true;
}
else
{
return false;
}
}
private object deserializestudent(object obj)
{
filedialog fd = new openfiledialog();
object objstd;
if (fd.filename != null | fd.showdialog() == dialogresult.ok)
{
filestream fs = new filestream(fd.filename, filemode.open, fileaccess.read, fileshare.read);
system.xml.serialization.xmlserializer xmlser = new system.xml.serialization.xmlserializer(obj.gettype());
objstd = xmlser.deserialize(fs);
fs.close();
return objstd;
}
else
{
return null;
}

}