1. 程式人生 > 其它 >C# 中的序列化

C# 中的序列化

1/*****************序列化與反序列化***************
2*好文:http://www.cnblogs.com/chjw8016/archive/2008/02/23/1078204.html
3*1.把物件轉換為位元組序列的過程稱為物件的序列化。
4*2.把位元組序列恢復為物件的過程稱為物件的反序列化。
5*3.最簡單的方法是使用Serializable屬性對類進行標記
6*4.IFormatter提供序列化的介面
7************************************************/
8usingSystem;
9usingSystem.Data;
10usingSystem.Configuration;
11usingSystem.Web;
12usingSystem.Web.Security;
13usingSystem.Web.UI;
14usingSystem.Web.UI.WebControls;
15usingSystem.Web.UI.WebControls.WebParts;
16usingSystem.Web.UI.HtmlControls;
17
18///
19///MyObject的摘要說明
20///
21[Serializable]
22publicclassMyObject
23{
24publicintn1=0;
25publicintn2=0;
26publicstringstr=null;
27publicMyObject()
28{
29//
30//TODO:在此處新增建構函式邏輯
31//
32}
33}
34Default.cs
35
36usingSystem;
37usingSystem.Data;
38usingSystem.Configuration;
39usingSystem.Web;
40usingSystem.Web.Security;
41usingSystem.Web.UI;
42usingSystem.Web.UI.WebControls;
43usingSystem.Web.UI.WebControls.WebParts;
44usingSystem.Web.UI.HtmlControls;
45
46usingSystem.IO;
47usingSystem.Runtime.Serialization;
48usingSystem.Runtime.Serialization.Formatters.Binary;
49
50publicpartialclass_Default:System.Web.UI.Page
51{
52protectedvoidPage_Load(objectsender,EventArgse)
53{
54//FuncSerialize();
55FuncDeserialize();
56}
57///
58///序列化,把物件序列化為一個檔案
59///
60privatevoidFuncSerialize()
61{
62MyObjectobj=newMyObject();
63obj.n1=1;
64obj.n2=24;
65obj.str="字串";
66IFormatterformatter=newBinaryFormatter();
67Streamstream=newFileStream(@"c:\MyFile.bin",FileMode.Create,FileAccess.Write,FileShare.None);
68formatter.Serialize(stream,obj);
69stream.Close();
70}
71///
72///反序列化,把檔案化為一個物件
73///
74privatevoidFuncDeserialize()
75{
76IFormatterformatter=newBinaryFormatter();
77Streamstream=newFileStream(@"c:\MyFile.bin",FileMode.Open,
78FileAccess.Read,FileShare.Read);
79MyObjectobj=(MyObject)formatter.Deserialize(stream);
80stream.Close();
81this.Title=obj.str;
82}
83}
84
天祺圍棋:www.tianqiweiqi.com呵呵

凡事以大氣象去面對,優秀是一種習慣。