我是一个非常快乐的 protobuf-net 露营者。到目前为止,我一直在使用带有 [ProtoMember]、[ProtoInclude] 和朋友标记的常规 protobuf-net,并取得了巨大成功。
但是现在我意识到我需要转移到 protobuf-net 核心,预生成序列化类,特别是能够在 iOS 上的 Unity 的 AOT 环境中执行。
这一切都很时髦,我特别从这篇博文中找到了一些好的建议,并开始迁移我的 protobuf-net 集成,但是关于这个主题的信息并没有完全散布在互联网上——至少在我的 google-fu 涵盖的范围内没有。
当我一个接一个地遇到障碍,挖掘源代码试图弄清楚发生了什么时,我变得有点沮丧。我真的可以使用一种 protobuf-net 核心与常规品牌的概述/意图/指南。
我最近遇到的是“非公共类型不能与完整的 dll 编译一起使用”限制,目前这似乎有些武断,但考虑到它对我现有设计的影响,这肯定很烦人(这正是我很高兴摆脱的原因我自己喜欢使用 protobuf-net 的常规 .net 二进制序列化程序)。
任何经验分享/事后分析或类似的有用资源将不胜感激。
编辑:只是为了完成,到目前为止,这是我的序列化程序生成器工具:https ://gist.github.com/AngryAnt/a19d8c67155163936aae