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;
}
}
---.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;
}
}
上一篇: Javascript的IE和Firefox兼容性汇编[转!!]
下一篇: webkit内核浏览器是否支持history.pushState webkit内核浏览器是否支持history.pushStatewebkit浏览器AjaxJavaScript
推荐阅读
-
(一)ASP.Net Core 分布式通信----序列化
-
asp.net xml序列化与反序列化第1/2页
-
asp.net xml序列化与反序列化第1/2页
-
asp.net 序列化and反序列化演示
-
ASP.NET下使用xml反序列化、缓存依赖实现个性化配置文件的实时生效
-
MyBatis的一级缓存、二级缓存演示以及讲解,序列化异常的处理
-
ASP.NET中JSON的序列化和反序列化
-
asp.net中webservice对日期类型序列化为json后的格式转换
-
asp.net中webservice对日期类型序列化为json后的格式转换
-
Jquery 组合form元素为json格式,asp.net反序列化_jquery