知识

Protobuf 是一种数据格式的协议。为了将协议转换成不同编程语言对应的代码文件,需要使用不同的工具对 .proto 文件进行转换。

转换工具

  1. Protocol Buffers
  2. Protobuf-net (for c#)
  3. protobuf-csharp-port (for c# 、java)

编译 Protobuf-net

  1. 下载源代码 Protobuf-net
  2. Rider 打开之后,运行 dotnet build
    在这里插入图片描述
  3. protobuf-net-main\src\protobuf-net.Protogen\bin\Debug\net5.0\publish 里面会生成本机环境对应的 ProtoGen 工具。
  4. 查看 ProtoGen 的使用: protogen.exe help

辅助工具

  1. 工具下载:

    Java code for ProtoGenCopy, 提取码:1q2e

    ProtoGenCopy Exe for Window,提取码:wtna

  2. 应用:比如 .proto 目录结构:

    + proto
    	- hello.proto
    	+ morning
    		- say_good_morning.proto
    	+ afternoon
    		- say_good_afternoon.proto
    	+ night
    		- say_good_night.proto
    

    转换成对应的结构:

    + proto
     	- hello.cs
    	+ morning
    		- say_good_morning.cs
    	+ afternoon
    		- say_good_afternoon.cs
    	+ night
    		- say_good_night.cs
    
  3. 工具配置文件 config.ini,放在运行的程序的同级目录:

    # 字符串不需要用 "" 包裹
    [ProtoGen]
    # progen.exe 的执行路径
    protogen_exe_path=I:\Github\ProtoGenToCs-master\ProtoGen\protogen.exe
    # 放 .proto 文件的根目录
    proto_source_path=I:\Github\ProtoGenToCs-master\Proto2Cs\Proto
    # 放生成的 .cs 文件的根目录
    proto_csharp_target_path=I:\Github\ProtoGenToCs-master\Proto2Cs\Cs
    # 生成的 .cs 文件的命名空间,可以不写
    proto_csharp_namespace=ProtoTest
    

    其他工具

    ProtoGenToCs

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐