编译依赖项
首先,创建一个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对象数据一致。