问题标签 [protogen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2183 浏览

c# - 使用 protobuf-net 将 json 转换为 object

我已经获得了通过 protogen 生成的 ac# 类。

我有一个 json 响应,我想将其转换为对象(映射到从 protogen 生成的类)。

我怎样才能做到这一点?我拥有的 Json 就像:

主类名称是“Test”,它具有intstring属性以及“ class ”类型的属性。

我想将此 Json 转换为“protogen”生成的类对象。

0 投票
2 回答
442 浏览

protobuf-net - 可以使用 protogen.exe 正确生成可选字段

我已经从这里https://protogen.marcgravell.com/下载了 CLI protogen.exe,并尝试生成一个带有*Specified可选成员访问器的 C# 文件,如此处所述使用以下命令行:

protogen --csharp_out="." MyProtoFile.proto +p:detectMissing

所有使用值类型的可选成员都没有可空类型或Specified访问器。

我也经常收到这个警告信息:

google/protobuf/descriptor.proto(41,1,41,8): warning: no syntax specified; it is strongly recommended to specify 'syntax="proto2";' or 'syntax="proto3";'

而且我不明白,因为我的 proto 文件的第一行是:

syntax="proto2";

0 投票
1 回答
139 浏览

protobuf-net - Protogen 生成列表而不是 int 数组

Protogen (langver=3) 编译

到一个int[]. 有没有办法强制它编译成System.Collections.Generic.List<int>

大多数其他类型(字符串或自定义类型)编译为列表。我可以实施一种解决方法,但对我来说最干净的解决方案是如果这可以将我的缓冲区解压缩到List<int>

0 投票
1 回答
617 浏览

protobuf-net - 使用 Protogen 2.3.17 命令行生成 C# 文件

我正在尝试为我的消息生成 C# 类,并且能够在此处的在线生成器的帮助下这样做。但是我想尝试在命令行工具的帮助下从命令行让它工作,但甚至一次都无法让它工作——我得到的帮助文本表明我的命令不正确,尽管我是不知道它缺少什么。我试着在 Stackoverflow 上四处寻找示例,并用“protoc”模仿我的命令(它有一个类似的选项列表,但效果惊人!)但由于导入 bcl.Guid 的问题,它无法生成类。您能否指出一些有关如何使用此功能或纠正以下命令中的错误的示例?

0 投票
2 回答
3025 浏览

protocol-buffers - 将 ProtoBuf-net 与 gRPC 一起使用

我正在尝试在工作中构建一个利用 gRPC 的 PoC。此处的 google 文档将带我们浏览一个示例应用程序。我想知道 protobuf-net,特别是 protogen,是否有能力理解执行 gRPC 调用所需的服务定义和类?或者这是正在做的事情?如果我使用 google 的 protoc 来生成客户端和服务器代码(涉及服务定义和 RPC 调用)并为我的业务对象使用 protobuf-net,它会起作用吗?

0 投票
0 回答
126 浏览

typescript - ts-protoc-gen 将列表附加到重复项

我有这样的 proto(3) 消息:

当为这个原型定义生成类型时,“列表”这个词被附加到重复的字段中,为什么会这样,有正当的理由吗?有没有办法阻止这个附加?这会引起巨大的头痛。

问题

注意:我在类实例上使用 AsObject 的原因很复杂,无法在这里解释,并且超出了这个问题的范围

这不会通过 GRPC 返回任何内容

这将返回数据

从另一台服务器调用函数时

如果您不选择使用这些类,这会使重复字段的类型变得无用。为什么在 GRPC 需要数据而不是 dataList 时附加列表这似乎是一种反模式

0 投票
1 回答
402 浏览

c# - protogen:创建cs文件

我正在尝试使用 Protogen 创建 C# 类这是我的语法

但没有创建 C# 类

当我使用相同的 proto 创建 C++ 类时,一切都运行良好(我需要添加 syntax="proto2";我不知道这是否会影响 C# 部分)

如果我手动运行它:C:\3rdParty\protobuf\protobuf-net>protogen.exe --proto_path:ClientsList.proto --csharp_out:ClientsList.cs

用法:protogen [OPTION] PROTO_FILES 解析 PROTO_FILES 并根据给定的选项生成输出:

-IPATH, --proto_path=PATH 指定要在其中搜索导入的目录。可以多次指定;将按顺序搜索目录。如果未给出,则使用当前工作目录。

--version 显示版本信息并退出。

……

请注意,当使用单个导入位置时,PROTO_FILES 可以是.proto 或 **/ .proto(递归),以处理找到的所有模式文件。在递归模式下,从当前目录导入也可以仅通过名称指定。

0 投票
1 回答
519 浏览

c# - 是否可以使用 protobuf-net 为扩展名为“FieldOptions”的 proto2 文件生成 C# 文件?

我有一个带有 proto2 语法的 proto 文件。我正在尝试使用 protogen 自动生成 C# 文件。虽然我可以毫无错误地生成文件,但在构建项目时出现错误(C# 文件是 Visual Studio 中 .Net 5 项目的一部分)。错误看起来像:

错误 CS0400:在全局命名空间中找不到类型或命名空间名称“Google”(您是否缺少程序集引用?)

我在正确的路径中添加了“descriptor.proto”,但它似乎对 protogen 自动生成 C# 文件的方式没有任何影响。

myproto.proto

我的原型.cs

Extensions生成的“myproto.cs”中的两种方法的静态类中都会发生错误。难道不能只使用 protobuf-net 包而不使用任何额外的 Google 包吗?如果不是,那么我必须添加哪个包作为附加依赖项?我可能遗漏了一些微不足道的东西,但我现在似乎无法理解。

0 投票
0 回答
32 浏览

c# - 将样本原始数据写入文件

我有一个像

我构建了我的代码并创建了自动生成的 .cs 文件。现在,我想编写示例数据(序列化为 json 格式并从中读取)

仅添加示例数据时出现一些错误。谁能帮帮我?

谁能帮我写一个示例数据。我将序列化这个 var ps 并将其存储在一个文件中。然后根据我的要求反序列化它。

0 投票
0 回答
19 浏览

protocol-buffers - 使用 Protogen.exe 生成具有自定义文件扩展名的 c# 类

我正在尝试使用 Protogen.exe 从 proto 文件生成 c# 类。我的用例是创建扩展名为 .g.cs 的输出文件。我可以找到 protoc 命令支持通过“--csharp_opt=file_extension=.g.cs”指定文件扩展名。有什么方法可以使用 Protogen.exe 来实现吗?