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
查看全文
相关阅读:
【机器学习】--xgboost初始之代码实现分类
【机器学习】--xgboost从初识到应用
【机器学习篇】--SVD从初始到应用
【深度学习篇】--Seq2Seq模型从初识到应用
【神经网络篇】--RNN递归神经网络初始与详解
【机器学习】--FP-groupth算法从初始到应用
JS Date对象
实现表单input文本框不可编辑的三种方法
Java 书写规范简单整理
C3P0数据库连接池数据库插入中文乱码问题解决
原文地址:https://www.cnblogs.com/yvesliao/p/856009.html
最新文章
Python清理过期文件
Shell运算符
Golang基础(一)
linux常用命令笔记
python文件操作笔记
Java中六大时间类的使用和区别
Java中isAssignableFrom的用法
win10更新系统后wifi连接不上了怎么解决?
Java中instanceof和isInstance区别详解
Python网络编程笔记
热门文章
Python中的列表
Python中字符串的intern机制
Deep Belief Network简介
Learning to Rank之RankNet算法简介
Pig性能优化
Learning to Rank之Ranking SVM 简介
受限玻尔兹曼机(Restricted Boltzmann Machine, RBM) 简介
【机器学习】--时间序列算法从初识到应用
【机器学习】--集成算法从初始到应用
【机器学习】--SVM从初始到应用
Copyright © 2011-2022 走看看