C# 自定义类数据的序列化与反序列化

**

C# 序列化与反序列化

定义:将对象转换成字节流并存储,在需要时将数据转为对象。
实现步骤:
1、将数据类贴上可系列化标签,让其可被序列化。
2、定义二进制序列化的字节流,通过字节流将数据序列化。
3、以序列化数据类型接受反序列化的数据。
具体实现如下

//自定义序列化数据类,将该类标记为可序列化
[Serializable]
public class Data { 
    public string Name { get; private set; }
    public int Id { get; private set; }
    public Data(string name,int id) {
        Name = name;
        Id = id;
    }
}
public static void main() {
        List<Data> list = new List<Data>();
        list.Add(new Data("第一个类",10001));
        list.Add(new Data("第二个类",10002));
        list.Add(new Data("第三个类",10003));

        //二进制序列化类
        BinaryFormatter binaryFormatter = new BinaryFormatter();
        //序列化实例数据,将数据持久化
        using (FileStream fileStream = new FileStream("ser.dat", FileMode.OpenOrCreate,FileAccess.Write)) {
            //通过字节流将数据序列化
           binaryFormatter.Serialize(fileStream, list);
        }

        //反序列化
        using (FileStream fileStream = new FileStream("ser.dat", FileMode.Open, FileAccess.Read))
        {
            if (fileStream.Length > 0) {
                //将数据反序列化,序列时是什么类型就要用什么类型接受数据
                List<Data> des_data = binaryFormatter.Deserialize(fileStream) as List<Data>;
                if (des_data != null && des_data.Count > 0) { 
                    foreach(Data data in des_data) {
                        Debug.LogError("ID" + data.Id + "NAME" + data.Name);
                    }
                }
            }
        }
    }

打印如下
在这里插入图片描述

**

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值