Protobuf的C#使用

Posted 潇湘子6210

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Protobuf的C#使用相关的知识,希望对你有一定的参考价值。

【转】http://blog.csdn.net/shantsc/article/details/50729402

protobuf  c#版本分成两个版本,一个是protobuf-net,另一个是protobuf-csharp-sport

一、protobuf-net版

步骤 1.编辑111.proto文件 遵循谷歌的格式  message一个类的名字 required 必须要赋值的字段 

 1 message Person
 2 {  
 3     required string name=1;
 4     required int32 id=2;
 5     optional string email=3;
 6 
 7     enum PhoneType
 8     {
 9         MONILE=0;
10         HOME=1;
11         WORK=2;
12     }
13 }

 

步骤 2.编译protobuf-net 并且在ProtoGen中引用   之后再编译Protogen.exe  
步骤 3.在dos下cd到protogen.exe  然后 -i:111.proto -o:111.cs -ns:MyProto

 

下边的是另一个版本的 

 

 二、protobuf-csharp-sport版

具体步骤如下:

1.先从http://code.google.com/p/protobuf-csharp-port/网站下载protobuf-csharp-port包,我下载的版本是:protobuf-csharp-port-2.4.1.473-release-binaries。

2.将上述包解压缩之后,取出其中的ProtoGen.exe.config,protoc.exe,ProtoGen.exe及Google.ProtocolBuffers.dll文件放到D:\protoc文件夹里

(D:\protoc文件夹是我自建的)。

3.打开命令提示符(我的是windows7系统),先用doc命令中的cd C:\命令转到C盘,然后输入D:回车,转到D盘,然后cd  protoc转到D:\protoc文件夹下。(非常细致哈,甚至有点啰嗦哈,不过我每次用都得google一下的呢~)

4.将需要转成c#的protobuf文件也添加到D:\protoc文件夹里,比如我们要转AddressBook.proto文件。

5.在命令提示符内输入:

protoc --descriptor_set_out=AddressBook.protobin --include_imports AddressBook.proto

(上述命令之后,你会发现D protoc文件夹内多了一个AddressBook.protobin文件)

接下来:

protogen AddressBook.protobin回车

上述命令之后,D盘protoc文件夹里多了个AddressBook.cs文件,是的,这就是万众瞩目的终极目标文件。

大功告成,呵呵,很简单的吧。

6.将cs文件导入项目中就可以使用了~

以上是关于Protobuf的C#使用的主要内容,如果未能解决你的问题,请参考以下文章

protobuf 下载编译,拷贝,proto文件生成c# c++代码

protobuf 下载编译,拷贝,proto文件生成c# c++代码

通讯协议及Google.Protobuf生成c#代码 序列及反序列化

C# protobuf-net - 默认值覆盖 protobuf 数据中的值

protobuf-net 不使用私有设置器序列化 C# 属性

与 protobuf-net 和 C# 的接口