安装
github下载protoc-3.15.8-win64.zip
解压后,将/protoc-3.15.8-win64/bin所在目录添加到环境变量
Demo
- 新建一个myproto.proto文件,内容如下:
syntax = "proto3";
package my;
message pb_team_info {
string team_id = 1;
string leader_id = 2;
repeated string members = 3;
int32 status = 4;
}
syntax = “proto3”; 表示使用版本V3,不再支持required、optional等关键字,所有字段都有默认值 package my; 定义类的命名空间
- 命令行输入
protoc .\myproto.proto --csharp_out=.
生成Myproto.cs
- 项目添加Myproto.cs,测试
pb_team_info teamInfo = new pb_team_info();
teamInfo.LeaderId = "2222";
teamInfo.Members.Add("aaa");
teamInfo.Members.Add("bbb");
teamInfo.Status = 1;
teamInfo.TeamId = "myteam";
var datas = teamInfo.ToByteArray();
var str = teamInfo.ToString();
pb_team_info tb = new pb_team_info();
tb.MergeFrom(datas);
var jp = JsonConvert.DeserializeObject<pb_team_info>(str);
ToByteArray方法生成字节数据,可用于构造出新的对象 ToString方法会将对象json化成字符串
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}