应用程序常常需要在硬盘上存储数据,而逐段构建文本和数据文件不是最方便的方式。
有时最好以对象的形式存储数据。
● System.Runtime.Serialization.Formatters.Binary:这个命名空间包含了BinaryFormatter类,它能把对象串行化为二进制数据,把二进制数据串行化为对象。
● System.Runtime.Serialization.Formatters.Soap:这个命名空间包含了SoapFormatter类,它能把对象串行化为SOAP格式的XML数据,把SOAP格式的XML数据串行化为对象。
下面是一个实例,通过这个实例,我们可以就可以很清晰的认识到串行化和并行化的具体处理。
1
using System;
2
using System.Data;
3
using System.Runtime.Serialization;
4
using System.Runtime.Serialization.Formatters.Binary;
5
using System.IO;
6
using System.Text;
7
using System.Collections.Generic;
8![](/Images/OutliningIndicators/None.gif)
9
/// <summary>
10
/// Summary description for Teacher
11
/// </summary>
12
[Serializable]//加上这个才能串行化
13
public class Teacher
14
{
15
/// <summary>
16
/// 教师ID
17
/// </summary>
18
public string ID;
19
/// <summary>
20
/// 教师姓名
21
/// </summary>
22
public string Name;
23
/// <summary>
24
/// 初始化
25
/// </summary>
26
public Teacher()
27
{
28
///
29
}
30
/// <summary>
31
/// 构造函数
32
/// </summary>
33
/// <param name="id"></param>
34
/// <param name="name"></param>
35
public Teacher(string id, string name)
36
{
37
this.ID = id;
38
this.Name = name;
39
}
40
/// <summary>
41
/// 串行化对象,保存为文件
42
/// </summary>
43
/// <param name="nObject"></param>
44
public void serializeObject(Teacher nTeacher)
45
{
46
try
47
{
48
//BinaryFormatter把对象串行化为二进制数据,把二进制数据串行化为对象
49
IFormatter formatter = new BinaryFormatter();
50
//FileStream fileStream = new FileStream(@"d:\teacher22.txt", FileMode.Create,FileAccess.Write);
51
FileStream fileStream = File.Create(@"d:\data.dat");
52
formatter.Serialize(fileStream, nTeacher);
53
fileStream.Close();
54
}
55
catch(Exception ex)
56
{
57
throw ex;
58
}
59
finally
60
{
61
}
62
}
63
/// <summary>
64
/// 反串行化||并行化
65
/// </summar
66
/// <param name="str"></param>
67
/// <returns></returns>
68
public Teacher deserializeObject()
69
{
70
try
71
{
72
BinaryFormatter derializer=new BinaryFormatter();
73
Stream stream = new FileStream(@"d:\data.dat", FileMode.Open, FileAccess.Read, FileShare.Read);
74![](/Images/OutliningIndicators/InBlock.gif)
75
//FileStream nFile = new FileStream(@"d:\teacher22.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
76
long coutn = stream.Length;
77
Teacher nTeacher = (Teacher)derializer.Deserialize(stream);
78
return nTeacher;
79
}
80
catch (Exception ex)
81
{
82
throw ex;
83
return null;
84
}
85
86
}
87
/// <summary>
88
/// 串行化对象
89
/// </summary>
90
/// <param name="nObject"></param>
91
public void serializeObjects(object nObject)
92
{
93
FileStream fileStream = new FileStream("d:\path.xml",FileMode.Create);
94
IFormatter serializer = new BinaryFormatter();
95
serializer.Serialize(fileStream, nObject);
96
}
97
/// <summary>
98
/// 反串行化---并行化
99
/// </summary>
100
/// <param name="str"></param>
101
/// <returns></returns>
102
public object deserializeObjects(string strPath)
103
{
104
FileStream filestream = new FileStream(@strPath,FileMode.Open);
105
IFormatter derializer = new BinaryFormatter();
106
object nObject=(object)derializer.Deserialize(filestream);
107
return nObject;
108
}
109
}
110![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
15
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
28
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
29
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
30
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
40
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
61
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
62
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
63
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
87
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
97
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/InBlock.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
109
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
110
![](/Images/OutliningIndicators/None.gif)