在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。 github上相关开源项目代码:http://pan.baidu.com/s/1eSDSb5o 下面演示如何将protobuf的消息体导出成C#支持的.cs类 首先我们获取到如下.proto文件 package hrv; option java_package = "com.******.****.***.protobuf"; option java_outer_classname = "RequestProto"; message Request { extensions 100 to max; enum Type { LOGIN = 0; CHANGE_PASSWORD = 1; START_SCALE = 2; STOP_SCALE = 3; DATA_PPG = 4; DATA_EP = 5; DATA_HRV = 6; DATA_IBI = 7; MARK_SCALE = 8; RESOURCE_LIST = 9; UPDATE_USER_INFO = 10; GET_SCALE_LIST = 11; GET_SCALE = 12; } required Type type = 1; optional string timestamp = 2; } 然后下载导出工具 ProtoGen.exe 下载地址: http://pan.baidu.com/s/1eRIv3oe 通过CMD命令行进入到该目录 使用如下命令行导出.cs文件 protogen.exe -i:Request.proto -o:Request.cs 命令解释 protogen -i:test.proto -o:test.cs -ns:UGE.Metadata -p:import=UGE 这句话的意思是, 输入test.proto文件, 给我生成 test.cs 文件, 代码在 namespace UGE.Metadata里, 顺便引用下 using UGE. 可以看到在同目录下生成了一个Request.cs文件,这个文件就是我们想要的cs类文件 Request.cs文件内容如下
View Code
但是这样一个一个的用命令行导出实在太麻烦,作为会偷懒的程序员,我们要使用更快速的方式批量生成,这个时候我们想到了BAT批处理 echo on set Path=ProtoGen\protogen.exe %Path% -i:Request.proto -o:OpenAPIModel\Request.cs %Path% -i:Response.proto -o:OpenAPIModel\Response.cs %Path% -i:UserInfo.proto -o:OpenAPIModel\UserInfo.cs %Path% -i:LoginReq.proto -o:OpenAPIModel\LoginReq.cs %Path% -i:LoginResp.proto -o:OpenAPIModel\LoginResp.cs pause 上面的批处理文件将所有的.proto文件到出成.cs类文件。 或者直接遍历某个文件夹下的所有.prot文件,全部转换 @echo off set Path=ProtoGen\protogen.exe for /f "delims=" %%i in ('dir /b proto "proto/*.proto"') do %Path% -i:proto/%%i -o:cs/%%~ni.cs pause 以上BAT以及demo的下载地址:http://pan.baidu.com/s/1pLtWTy7 搞定! 简介 1、下载地址:http://code.google.com/p/protobuf/downloads/2、proto文件格式package 对应于c#中的命名空间
proto文件编辑的命令: 转换之后的文件:
3、proto转化后的.cs文件的序列化和反序列化首先,将生成的.cs文件复制到自己的项目文件中
|
请发表评论