- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
是否可以让 protogen 基于单个 .proto 文件输出多个文件(每个类一个)?
我正在处理一个非常大的 .proto 文件,它输出大约 200 个类,目前全部在一个文件中。我需要使用生成的类的地方之一是在内存高度受限的环境中(Windows Phone 后台代理)。
我希望能够只在受限环境中加载的程序集中包含必要的类,但是当生成的类都在一个文件中时,我无法轻松地做到这一点。如果我可以将它们输出到多个文件,我只能在受限环境的程序集中链接我需要的文件。
有没有办法让 protogen 在单独的文件中输出类?我看不到这个选项,目前只使用 umbrella-classname
选项。
手动编辑生成的文件不是一个选项,所以如果 protogen 不能这样做,是否有另一个可用的命令行工具可以拆分包含多个类的文件? (为了节省重新发明轮子。)
更新
我正在使用 Google.ProtocolBuffers.dll
一个继承的决定,不容易改变。
编辑/拆分 .proto 文件也不可行。 (除非作为自定义步骤。)
最佳答案
我们在 csharp_options 中有一个选项,但没有实现:
// Whether to generate a single file for everything within the
// .proto file (false), or one file per message (true).
// This option is not currently honored; please log a feature
// request if you really want it.
optional bool multiple_files = 4;
考虑到您必须删除相关文件并确保您获得所有依赖项,听起来它实际上不会为我建议的解决方案节省很多工作,是将您的 proto 文件拆分成单独的文件 您说这“也不是可能的”,但基本上这就是我目前所能提出的所有建议 - 为什么这不是可能的?
编辑:我刚刚有了另一个想法。您可能会运行 protogen
的 protoc
步骤(如果您没有另外指定,现在会自动完成)来解析 .proto
文件进入它的描述符。然后在另一个程序中加载描述符,像处理任何其他 protobuf 消息一样对其进行变异(从中创建构建器,编辑消息,构建),然后保存描述符。然后,您可以在剩余的描述符上使用 protogen,并仅生成您想要的类...
关于c# - 使用 protogen 为每个文件输出一个 C# 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10121719/
我们一直在使用 protobuf-net ProtoGen 从 *.proto 文件生成 C# .cs 文件。我们希望生成结构而不是类。例如 [DataContract] public struct
我正在尝试使用 protobufs 序列化一些类。我使用 NuGet 安装了 protobuf-net,用属性正确修饰了我的代码,一切都运行良好。 但是,最终消息将在 C# 中创建,但在其他环境中使用
是否可以让 protogen 基于单个 .proto 文件输出多个文件(每个类一个)? 我正在处理一个非常大的 .proto 文件,它输出大约 200 个类,目前全部在一个文件中。我需要使用生成的类的
我创建了一个原型(prototype)插件。当我执行时: $ protoc --plugin=protoc-gen-grpc-java=grpc-client-guice-gradle-plugin
我们已经在工作中使用 protobuf 一段时间了,我决定为客户端编写一个小控制台应用程序,这将允许他们在现场进行一些测试。 我启动了一个新的 c# 控制台应用程序并从 nuget 下载了 googl
在使用 protobuf-net 的 C# 中,我想将我的 protobuf 定义保存在 .proto 文件中。 (它用于为其他语言生成代码,...) 我知道 Google 的 protoc 实现不会
我是一名优秀的程序员,十分优秀!