获得预期的***语句(例如“消息”)。同时将 proto 转换为 C#

Posted

技术标签:

【中文标题】获得预期的***语句(例如“消息”)。同时将 proto 转换为 C#【英文标题】:Getting Expected top-level statement (e.g. "message").while converting proto to C# 【发布时间】:2019-07-26 01:44:54 【问题描述】:

我有一个名为 Person.proto 的简单 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

Person.cs

public class Person



【问题讨论】:

【参考方案1】:

您在那里使用的究竟是哪些工具版本?如果它不期望“语法”关键字,则表明工具版本非常旧。也许尝试更新?但是,当前的 Google 工具仅支持“proto3”语法。在您的情况下,这仅意味着将“proto2”更改为“proto3”并删除“可选”。你也可以试试我的在线工具,它同时支持 Google 工具 (protoc) 和 protobuf-net 工具 (protogen) - 请参阅https://protogen.marcgravell.com的下拉列表

与 protoc 不同,protogen 支持“proto2”和“proto3”语法。页面上有如何在本地访问工具的链接。

【讨论】:

以上是关于获得预期的***语句(例如“消息”)。同时将 proto 转换为 C#的主要内容,如果未能解决你的问题,请参考以下文章

Lerna 发布工作流程未按预期发布

当在VSTS中更新目标分支时,是否可以获得PR以重新启动合并?

当预期类型可能不同时,如何安全地处理来自 JSON 的数据?

Content-Length 分隔的消息正文过早结束(预期:

Akka 如何决定哪个 Actor 获得线程?

为啥我得到 NaN 以及如何获得预期的输出?