c# - 获得预期的顶级语句(例如“消息”)。同时将 proto 转换为 C#
问题描述
我有一个名为 Person.proto 的简单原型文件,内容如下。我不明白我错过了什么。
syntax = "proto2";
message Person{
optional string name = 1;
}
我正在使用的命令是
Protoc Person.proto --csharp_out=C:\Users\Owner\.nuget\packages\google.protocolbuffers\2.4.1.555\tools Person.cs
个人.cs
public class Person
{
}
解决方案
您在那里使用的究竟是什么工具版本?如果不期望“语法”关键字,则表明工具版本非常旧。也许尝试更新?但是,当前的 Google 工具仅支持“proto3”语法。在您的情况下,这仅意味着将“proto2”更改为“proto3”并删除“可选”。您还可以尝试我的在线工具,它同时支持 Google 工具 (protoc) 和 protobuf-net 工具 (protogen) - 请参阅https://protogen.marcgravell.com的下拉菜单
与 protoc 不同,protogen 同时支持“proto2”和“proto3”语法。页面上有关于如何在本地访问工具的链接。
推荐阅读
- python - 由于 cffi.api.CDefError 无法使用 pyinstaller
- android - 如何在水平 RecyclerView 项目中检测从下到上的触摸
- c# - c#空数组上的“索引超出数组范围”
- ssl - 端口 6001 上的套接字 url 显示不安全
- python - Python如何在另一个程序发生某些事情时触发代码
- node.js - Node.js vm2 exchanging information between VM and main code using functions
- azure - 为 Azure Blob 存储批量更改层
- excel - 角度返回在 HTML 网格中上传的 excel 文件
- javascript - 如何创建一个使用随机生成的间隔调用函数的连续循环
- javascript - 在 JavaScript 中,是否可以绕过 setter?