1
/*****************序列化与反序列化***************
2
3
* 1.把对象转换为字节序列的过程称为对象的序列化。
4
* 2.把字节序列恢复为对象的过程称为对象的反序列化。
5
* 3.最简单的方法是使用 Serializable 属性对类进行标记
6
* 4.IFormatter提供序列化的接口
7
************************************************/
8
using System;
9
using System.Data;
10
using System.Configuration;
11
using System.Web;
12
using System.Web.Security;
13
using System.Web.UI;
14
using System.Web.UI.WebControls;
15
using System.Web.UI.WebControls.WebParts;
16
using System.Web.UI.HtmlControls;
17
18
///
19
/// MyObject 的摘要说明
20
///
21
[Serializable]
22
public class MyObject
23
{
24
public int n1 = 0;
25
public int n2 = 0;
26
public string str = null;
27
public MyObject()
28
{
29
//
30
// TODO: 在此处添加构造函数逻辑
31
//
32
}
33
}
34
Default.cs
35
36
using System;
37
using System.Data;
38
using System.Configuration;
39
using System.Web;
40
using System.Web.Security;
41
using System.Web.UI;
42
using System.Web.UI.WebControls;
43
using System.Web.UI.WebControls.WebParts;
44
using System.Web.UI.HtmlControls;
45
46
using System.IO;
47
using System.Runtime.Serialization;
48
using System.Runtime.Serialization.Formatters.Binary;
49
50
public partial class _Default : System.Web.UI.Page
51
{
52
protected void Page_Load(object sender, EventArgs e)
53
{
54
//FuncSerialize();
55
FuncDeserialize();
56
}
57
///
58
/// 序列化,把对象序列化为一个文件
59
///
60
private void FuncSerialize()
61
{
62
MyObject obj = new MyObject();
63
obj.n1 = 1;
64
obj.n2 = 24;
65
obj.str = "字符串";
66
IFormatter formatter = new BinaryFormatter();
67
Stream stream = new FileStream(@"c:\MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
68
formatter.Serialize(stream, obj);
69
stream.Close();
70
}
71
///
72
/// 反序列化,把文件化为一个对象
73
///
74
private void FuncDeserialize()
75
{
76
IFormatter formatter = new BinaryFormatter();
77
Stream stream = new FileStream(@"c:\MyFile.bin", FileMode.Open,
78
FileAccess.Read, FileShare.Read);
79
MyObject obj = (MyObject)formatter.Deserialize(stream);
80
stream.Close();
81
this.Title = obj.str;
82
}
83
}
84
天祺围棋:www.tianqiweiqi.com呵呵
凡事以大气象去面对,优秀是一种习惯。