protobuf在C#项目中的使用
在C#项目中,有时候会使用到使用到protobuf来作为通信时数据交换的格式。1、制定proto协议
protobuf(ProtocolBuffer,简称PB),是google 的一种数据交换的格式。这是一种二进制的格式,比使用xml更方便,数据量更小,数据交换速度更快。是一种兼容性比较好的数据传输格式,主要用于通信协议、数据存储等方面。
protobuf的C#版本(protobuf-net)下载地址:https://code.google.com/p/protobuf-net/,
将其保存为ProtoGen目录。
注意:在使用protobuf通信的时候,需要保证其版本号的一致性。
创建一个后缀为“.proto”的文件,即为我们的协议文件。文件格式如下:2、编译 “.proto”文件
示例:TestParam.proto(协议具体规则见附录)
option optimize_for = SPEED; message TestParam { required string string_param = 1; optional double double_param = 2; required int32 int_param = 3; optional int32 default_param = 4 [default = 1]; repeated TestParam2 repeated_param = 5; ...... } message Param2 { required enum enum_param { flag_a = 0; flag_b = 1; flag_c = 2; } ...... } ......
将TestParam.proto文件复制到ProtoGen目录下,并在此目录下执行命令行语句:
则可以由 TestParam.proto得到 TestParam.cs的C#文件protogen -i:TestParam.proto -o:TestParam.cs
为了方便,可以将该命令保存为一个批处理文件(如csharpPb.bat),使用时修改文件内容并执行此批处理文件即可。
如新的proto文件为