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
查看全文
相关阅读:
find
Spring 中——————ClassPathResource初学
Cookie 、Session、Token的学习
JAVA注解之实现原理
JAVA注解---2
JAVA注解————1
函数式遍程----Function
java 反射的学习实践2
Spring AOP 之动态代理源码分析
正则表达式之Pattern.MULTILINE Pattern.DOTALL
原文地址:https://www.cnblogs.com/yvesliao/p/856009.html
最新文章
看似不可能战胜的困难
寄希望于“毕其功于一役”
LeetCode OJ
LeetCode OJ
LeetCode OJ
LeetCode OJ
LeetCode OJ
LeetCode OJ
LeetCode OJ
LeetCode OJ
热门文章
LeetCode OJ
LeetCode OJ
shell中的时间值提取(date)
getopts
hwclock
rsyncd
nginx 高可用
crontab
vsftpd
ls
Copyright © 2011-2022 走看看