asp.net 序列化and反序列化演示
程序员文章站
2022-04-17 13:27:06
什么是序列化? ---.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;
}
}
---.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;
}
}
上一篇: 熊孩子,赚钱有道
下一篇: asp.net中List的使用方法