首页 > 编程知识 正文

protoc命令,protobuf反序列化

时间:2023-05-06 08:12:55 阅读:136934 作者:1407

如果在proto文件中将字段定义为repeated

使用protobuf-net编译为c#文件时,由repeated限定的字段是已编译c#文件的列表集合,如下图所示

但是,该文件中的List如上图的红框所示,只有get属性,是readonly,在外部使用的情况下可以通过list.AddRange方式向集合赋值,但由于数据的灵活存储有很多限制,因此http://

查看protobuf-net文件后,发现修改中的csharp.xslt文件即可实现

具体方法如下。

打开proto buf-netprotogencsharp.XSLT文件。 此文件是一个配置文件,用于确定proto文件将生成什么样的c#文件。 该处继续执行http://www.Sina.com/http://www.Sina.com的修正目标

打开后搜索Label_Repeated,里面应该只有这个

找到后,在Repeated限定的proto文件中找到了已编译为C#文件的展开。 如上图所示,大红框的内容就是这样

怎么可以让编译后的c#文件里的List自动加上Set属性并且去掉readonly

找到readonly所在的这行。 下图的红框

然后,删除红框的内容xsl:iftest='not($optionXML ) ) readonly/xsl:if

删除后如下

然后进入步骤2 :

还是在这里找到并删除下图所示的标记内容?

删除此评论并保存文件

然后,将proto文件重新编译为c#文件。 结果如下。

我们发现实现了我们想要的效果。加上Set和去掉readonly

所以打开它

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。