C#使用protobuf简述

编译依赖项

首先,创建一个C#4.5以上project,因为最新的protobuf依赖于C#5.0的语言特性。

然后,我们通过nuget,为项目添加对protobuf的引用,搜索protobuf就可以开始安装了。

安装完成后,可以编译一次工程,在bin/debug目录下就可以拿到Google.Protobuf.dll了。然后,我们就可以卸磨杀驴了,在nuget里卸载掉这个安装项(因为,我们可能需要分享这个库给其他同事用,用nuget方式并不方便)。

最后,手动添加对Google.Protobuf.dll,就可以了。

编辑.proto文件,编译文件

不详细展开了,具体可以去官网学习

下面,是一个我的使用例子。

syntax = "proto3";

message pb_team_info {
    string team_id = 1;
    string leader_id = 2;
    repeated string members = 3;
    int32 status = 4;
}

然后我们可以通过编译.proto文件,获得序列化的cs文件。

编译器protoc.exe,也可以去官网下载

protoc.exe test.proto mannul.proto --csharp_out=.

加入工程

    pb_team_info teamInfo = new pb_team_info();
    teamInfo.LeaderId = "321312";
    teamInfo.Members.Add("ddwd");
    teamInfo.Members.Add("123");
    teamInfo.Status = 1;
    teamInfo.TeamId = "newbie";

    var datas = teamInfo.ToByteArray();
    foreach (var b in teamInfo.ToByteArray())
        Console.Write((char)b);

    pb_team_info tb = new pb_team_info();
    tb.MergeFrom(datas);

最后,可以在一次序列化,一次反序列后得到tb对象,tb对象和teamInfo对象数据一致。

猜你喜欢

转载自blog.csdn.net/narlon/article/details/89399207
今日推荐