.NET中使用Protobuffer实现序列化和反序列化

原文地址

官方下载地址


测试实体类:

using ProtoBuf;
[ProtoContract]
public class Student
{
    [ProtoMember(1)]
    public int StudentId{get;set;}
    [ProtoMember(2)]
    public string Name { get; set; }
    [ProtoMember(3)]
    public string ClassName { get; set; }

}

序列化和反序列化

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using ProtoBuf;

namespace CenterServer
{
    class Program
    {
        private const string TestPath = @"D:/1.txt";
        static void Main(string[] args)
        {
            Student stu = new Student()
            {
                StudentId = 1,
                Name = "zhangsan",
                ClassName = "classOne"
            };

            if (!File.Exists(TestPath))
            {
                FileStream fs = File.Create(TestPath, 1024, FileOptions.Asynchronous);
                fs.Dispose();
            }
            Console.WriteLine("开始序列化并导出文件……");
            using (Stream s = new FileStream(TestPath, FileMode.Open, FileAccess.ReadWrite))
            {
                Serializer.Serialize<Student>(s, stu);
                s.Close();
            }
            Console.WriteLine("序列化完毕");

            Console.WriteLine("反序列化并输出");
            using (Stream s = new FileStream(TestPath, FileMode.Open))
            {
                Student st = Serializer.Deserialize<Student>(s);
                Console.WriteLine("姓名" + stu.Name + "\n" + "编号:" + stu.StudentId + "\n" +
                    "班级:" + stu.ClassName);
                s.Close();
            }
            Console.Read();
        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值