zoukankan
html css js c++ java
把对象序列化与反序列化
前面写了一篇文章,把Model与XML互相转化。后来看到.NET的成员资格,发现Profile保存在数据库中是二进制数据。于是我想着尝试把Model直接序列化存入数据库,当然程序中会有可能改动Model,而导致取出Model转换失败的时候,所以在数据库中应该用两个字段来保存,一个是二进制,一个是XML,在转换失败的时候利用XML可以保留与旧的Model一致的数据,这样就具有了很好的兼容性。下面是序列化与反序列化的代码。
序列化与反序列化
#region
序列化与反序列化
/**/
///
<summary>
///
序列化对象
///
</summary>
///
<param name="obj">
要序列化的对象
</param>
///
<returns>
返回二进制
</returns>
public
static
byte
[] SerializeModel(Object obj)
{
if
(obj
!=
null
)
{
BinaryFormatter binaryFormatter
=
new
BinaryFormatter();
MemoryStream ms
=
new
MemoryStream();
byte
[] b;
binaryFormatter.Serialize(ms, obj);
ms.Position
=
0
;
b
=
new
Byte[ms.Length];
ms.Read(b,
0
, b.Length);
ms.Close();
return
b;
}
else
return
new
byte
[
0
];
}
/**/
///
<summary>
///
反序列化对象
///
</summary>
///
<param name="b">
要反序列化的二进制
</param>
///
<returns>
返回对象
</returns>
public
static
object
DeserializeModel(
byte
[] b,
object
SampleModel)
{
if
(b
==
null
||
b.Length
==
0
)
return
SampleModel;
else
{
object
result
=
new
object
();
BinaryFormatter binaryFormatter
=
new
BinaryFormatter();
MemoryStream ms
=
new
MemoryStream();
try
{
ms.Write(b,
0
, b.Length);
ms.Position
=
0
;
result
=
binaryFormatter.Deserialize(ms);
ms.Close();
}
catch
{ }
return
result;
}
}
#endregion
查看全文
相关阅读:
网站制作教程之PageAdmin网站管理系统(cms)实现多域名访问
免费企业网站模板_学校网站模板_政府网站模板源码下载
网站建设如何挑选自助网站建设系统
Problem2-Project Euler
Problem1-Project Euler
防微杜渐——读《C安全编码标准》
3D射影不变量
直线匹配-LPI算法原理 Robust line matching through line–point invariants
angular-cli 工程中使用scss文件
JS怎么计算html标签里文字的宽度
原文地址:https://www.cnblogs.com/yvesliao/p/856009.html
最新文章
免费观看VIP资源
中国石油大学(华东)数学实验(MATLAB)复习
JAVA的安装
telnet 服务
DHCP 服务
服务概述
SSH 服务
Linux必会的60个命令
vagrant 入门第七篇
vagrant 入门第六篇
热门文章
vagrant 入门第五篇
vagrant 入门第四篇
vagrant 入门第三篇
那些年使用WordPress踩过的坑,使用WordPress要慎重。
PageAdmin,织梦DedeCms和Wordpress—CMS建站系统怎么选
哪个CMS建站系统更利于seo优化
最受欢迎免费开源CMS建站系统排行榜
企业网站建设选用PageAdmin的三大优势
外贸网站制作用PageAdmin建站系统搭建有哪些优势?
网站制作费用明细,做一个网站需要多少钱
Copyright © 2011-2022 走看看