使用 protobuf-net 生成器制作 PCL 友好的 C# 类

Posted

技术标签:

【中文标题】使用 protobuf-net 生成器制作 PCL 友好的 C# 类【英文标题】:Make PCL-friendly C# classes with protobuf-net generator 【发布时间】:2014-08-21 06:13:57 【问题描述】:

我想在 Xamarin 应用程序中使用协议缓冲区,因此我需要使用 PCL 项目来存放我的非平台特定代码。

我使用 protobuf-net protogen 将 .proto 文件转换为 .cs 文件,但它与 PCL 项目不兼容。使其兼容就像从文件中删除每个 global::System.Serializable 属性一样简单,但我想知道是否有办法让 protogen 不将这些属性放入生成的文件中。

如果我要 a) 找到一种方法来自动构建 .proto 类,b) 定期更改非常多的消息类型中的一些,或者 c) 将项目交给不这样做的人,这将非常有帮助不明白问题所在。

【问题讨论】:

【参考方案1】:

是的,protogen 工具可以选择发射它。尝试添加 -p:lightFramework 以启用此功能。 -p:help 应该显示所选语言插件提供的其他选项。

【讨论】:

以上是关于使用 protobuf-net 生成器制作 PCL 友好的 C# 类的主要内容,如果未能解决你的问题,请参考以下文章

用于继承的 Protobuf-net .proto 文件生成

使用 protobuf-net.Grpc 生成通用服务的 .proto 文件

编译 protobuf-net 生成的代码时出错

为 protobuf-net 生成序列化程序集失败

从 protobuf-net 中的自定义 RuntimeTypeModel 生成 .proto 文件

protobuf-net 生成的 .proto 文件中的字段命名约定不正确?