[转载]C#通用的序列化方法

[转载]通用的序列化方法 – 邹泽栋 – 博客园.

01 /// <summary>
02 /// 序列化数据
03 /// </summary>
04 /// <param name="obj">对象</param>
05 /// <returns>二进制流</returns>
06 private byte[] GetBinaryFormatSerialize(object obj)
07 {
08 //创建支持存储 区为内存的流
09 MemoryStream Memory = new MemoryStream();
10 //以二进制格式将整个连接对象图形序列化和反序列化
11 BinaryFormatter formatter = new BinaryFormatter();
12 //将对象序列化为附加所提供标题的给定流
13 formatter.Serialize(Memory, obj);
14 byte[] buff = Memory.ToArray();
15 Memory.Close();
16 Memory.Dispose();
17 return buff;
18 }
19
20 /// <summary>
21 /// 反序列化对象
22 /// </summary>
23 /// <typeparam name="T">类型</typeparam>
24 /// <param name="buff">二进制数据</param>
25 /// <returns>反序列后结果</returns>
26 private T RetrieveDeserialize<T>(byte[] buff)
27 {
28 //创建支持存储 区为内存的流
29 MemoryStream Memory = new MemoryStream();
30 //以二进制格式将整个连接对象图形序列化和反序列化。
31 BinaryFormatter formatter = new BinaryFormatter();
32 return (T)formatter.Deserialize(new MemoryStream(buff));
33 }
34 <pre class="brush:csharp"> //调用
35 DataTable dt = new DataTable();
36 #region 序列化
37 byte[] buff = GetBinaryFormatSerialize(dt);
38 #endregion
39
40 #region  反序列化
41 dt = RetrieveDeserialize<DataTable>(buff);
42 #endregion
43 </pre>
赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏