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
查看全文
相关阅读:
Java排序算法之堆排序
servlet学习总结(一)——HttpServletRequest(转载)
servlet学习总结(一)——初识Servlet
Java排序算法之快速排序
Java排序算法之直接选择排序
第八课、泛型编程简介
第六课、算法效率的度量
第四课、程序灵魂的审判
第三课、初识程序的灵魂------------------------狄泰软件学院
用solidity语言开发代币智能合约
原文地址:https://www.cnblogs.com/yvesliao/p/856009.html
最新文章
NIPS2014_How transferable are features in deep neural networks?
NIPS2017_PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
CVPR2017 tutorial: 3D Deep Learning
CVPR2017_PointNet_ Deep Learning on Point Sets for 3D Classification and Segmentation
ubuntu使用技巧
Google Protocol Buffer 的使用和原理
推荐系统中的相似度度量
Apache Spark源码走读之16 -- spark repl实现详解
Apache Spark源码走读之15 -- Standalone部署模式下的容错性分析
Apache Spark源码走读之14 -- Graphx实现剖析
热门文章
Apache Spark源码走读之13 -- hiveql on spark实现详解
Apache Spark源码走读之12 -- Hive on Spark运行环境搭建
Apache Spark源码走读之11 -- sql的解析与执行
Apache Spark源码走读之10 -- 在YARN上运行SparkPi
Apache Spark源码走读之9 -- Spark源码编译
Java多线程学习笔记(三)——Future和FutureTask
Java多线程学习笔记(二)——Executor,Executors,ExecutorService比较
Java多线程学习笔记(一)——多线程实现和安全问题
leetcode中Database题(一)
Java排序算法之插入排序
Copyright © 2011-2022 走看看