序列化和反序列化

所谓的序列化就是是将对象转换为容易传输的格式的过程,一般情况下转化打流文件,放入内存或者IO文件中。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象,或者和其它应用程序共享使用。反之,反序列化根据流重新构造对象。

序列化加 [Serializable]就可以了

    [Serializable]
    public class TestInfo
    {

        public int Id
        {
            get;
            set;
        }

        public string UserName
        {
            get;
            set;
        }
    }

如果不想序列化其中某个Field,则使用[NonSerialized]

序列化调用代码示例:

            List<TestInfo> list = new List<TestInfo>();
            list.Add(new TestInfo() { Id = 1, UserName = "测试1" });
            list.Add(new TestInfo() { Id = 2, UserName = "测试2" });
            list.Add(new TestInfo() { Id = 3, UserName = "测试3" });
            using (FileStream fs = new FileStream(@"C:\test.dat", FileMode.Create))
            {
                BinaryFormatter formatter = new BinaryFormatter();
                formatter.Serialize(fs, list);
            }

反序列化调用代码示例

            List<Test> list = new List<Test>();
            using (FileStream fs = new FileStream(@"C:\test.dat", FileMode.Open))
            {
                BinaryFormatter formatter = new BinaryFormatter();
                list = (formatter.Deserialize(fs) as List<TestInfo>);//在这里大家要注意咯,他的返回值是object
            }

posted @ 2010-10-11 14:31  双击  阅读(120)  评论(0编辑  收藏  举报