protobuf-net 将proto文件转换成.cs放在项目中用

来源:互联网 发布:淘宝架构分析 编辑:程序博客网 时间:2024/04/29 05:36

手游 通讯要达到最大优化 ,在没有自己写出的序列化好的结构下就暂时使用谷歌的protobuf-net 来源于社区 ;


protobuf  c#版本分成两个 一个是protobuf-net 另一个是protobuf-csharp-sport一会再补充 ,刚才实现了自己编辑.proto文件,然后通过ProtoGen生成.cs文件 

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

message Person{ 

required string name=1;
required int32 id=2;
optional string email=3;

enum PhoneType{
MONILE=0;
HOME=1;
WORK=2;}
}

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

搞定 


下边的是另一个版本的 一会再补充



具体步骤如下:

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文件导入项目中就可以使用了~

1 1