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 ************************************************/
 8using System;
 9using System.Data;
10using System.Configuration;
11using System.Web;
12using System.Web.Security;
13using System.Web.UI;
14using System.Web.UI.WebControls;
15using System.Web.UI.WebControls.WebParts;
16using System.Web.UI.HtmlControls;
17
18/// 
19/// MyObject 的摘要说明
20/// 
21[Serializable]
22public 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}
34Default.cs
35
36using System;
37using System.Data;
38using System.Configuration;
39using System.Web;
40using System.Web.Security;
41using System.Web.UI;
42using System.Web.UI.WebControls;
43using System.Web.UI.WebControls.WebParts;
44using System.Web.UI.HtmlControls;
45
46using System.IO;
47using System.Runtime.Serialization;
48using System.Runtime.Serialization.Formatters.Binary;
49
50public 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呵呵

凡事以大气象去面对,优秀是一种习惯。

posted @ 2021-08-17 15:48  MaxBruce  阅读(157)  评论(0编辑  收藏  举报