1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 //引入三个命名空间
7 using System.Runtime.Serialization;
8 using System.Runtime.Serialization.Formatters.Binary;
9 using System.IO;
10
11 namespace Logistics
12 {
13 public class SerializeObjectToString
14 {
15 //将Object类型对象(注:必须是可序列化的对象)转换为二进制序列字符串
16 public string SerializeObject(object obj)
17 {
18 IFormatter formatter = new BinaryFormatter();
19 string result = string.Empty;
20 using (MemoryStream stream = new MemoryStream())
21 {
22 formatter.Serialize(stream, obj);
23 byte[] byt = new byte[stream.Length];
24 byt = stream.ToArray();
25 //result = Encoding.UTF8.GetString(byt, 0, byt.Length);
26 result = Convert.ToBase64String(byt);
27 stream.Flush();
28 }
29 return result;
30 }
31 //将二进制序列字符串转换为Object类型对象
32 public object DeserializeObject(string str)
33 {
34 IFormatter formatter = new BinaryFormatter();
35 //byte[] byt = Encoding.UTF8.GetBytes(str);
36 byte[] byt = Convert.FromBase64String(str);
37 object obj = null;
38 using (Stream stream = new MemoryStream(byt, 0, byt.Length))
39 {
40 obj = formatter.Deserialize(stream);
41 }
42 return obj;
43 }
44 }
45 }