【问题标题】:Do protobuf-net supports protobuf extensions?protobuf-net 是否支持 protobuf 扩展?
【发布时间】:2017-11-21 23:40:11
【问题描述】:

我有一个 base.proto,其中包含一组可以使用 protobuff extensions 扩展的消息,然后我有一个 comm.proto,它扩展了 base.proto 中定义的一些消息。

我使用 ProtoGen 生成 base.cs 和 comm.cs 文件,但我无法访问 comm.cs 添加的扩展字段。

这是支持还是我必须向 ProtoGen 传递一些额外的参数?

最好的问候 佩德罗

【问题讨论】:

    标签: c# .net unity3d protocol-buffers protobuf-net


    【解决方案1】:

    这取决于您使用的 protogen 版本。

    protogen 工具被完全重写作为 2.3.0 工作的一部分,增加了对 proto3 的支持(仍然保留 proto2),完全支持 expected 扩展字段(含义:在 .proto 等中声明的扩展同时添加。

    请注意,runtimeunexpected 字段的支持已经存在很长时间了 - 访问它们的最简单方法是通过 Extensible 类型的静态方法。

    【讨论】:

    • 我有一个 2.3.0 之前的版本,因为 .Net 项目的格式,我无法使用单声道开发构建 2.3.2。在 MacOS 上使用 Mono 构建 2.3.2 protobuf-net 有什么建议吗?如果您/或有人提供开箱即用的二进制文件的单声道版本,那就太好了。感谢您的回复
    • @posilva 你没看错;我应该找时间做那件事。 dotnet build 不是一个选项吗?需要强调的是:重写的主要原因之一是正是改进了 x-plat 的故事......(以前的版本更受平台限制)。
    • 您能否给我一些关于如何使用dotnet build 构建版本2.3.2 的亮点。我的环境是: - MacOS - 我打算在 Unity 项目中使用 protobuf-net 来定位移动设备和 webgl。 - 我安装了 dotnet sdk 2.0.3 当我运行dotnet build protobuf-net.sln 时,我得到`找不到框架“.NETFramework,Version=v4.0”的参考程序集`提前谢谢
    • @posilva 你应该可以在 protobuf-net 文件夹中使用dotnet build -f netstandard1.3
    • 没用我一直收到Ensure that restore has run and that you have included 'netstandard1.3' in the TargetFrameworks for your project。 :(。有什么想法吗?我会继续挖掘。如果我能找到解决方案,我会在这里分享答案。
    猜你喜欢
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多