【发布时间】:2013-04-12 11:41:51
【问题描述】:
除了此方法之外,是否有任何替代方法可以使用 protobuf-net 在 Xamarin.iOS (Monotouch) 中实现对象的序列化和反序列化:
阅读周围的一些人声称他们已经做到了(没有提供证据),但我的理解是 [iOS JIT==NO] 所以不太有意义。
如果唯一可能的解决方案是对所有相关类进行完全 AOT,那么合适的构建前/构建后事件命令行可能会自动为任何相关程序集执行此 AOT?
【问题讨论】:
除了此方法之外,是否有任何替代方法可以使用 protobuf-net 在 Xamarin.iOS (Monotouch) 中实现对象的序列化和反序列化:
阅读周围的一些人声称他们已经做到了(没有提供证据),但我的理解是 [iOS JIT==NO] 所以不太有意义。
如果唯一可能的解决方案是对所有相关类进行完全 AOT,那么合适的构建前/构建后事件命令行可能会自动为任何相关程序集执行此 AOT?
【问题讨论】:
我听说很多人通过这条途径取得了成功,但我也无法提供书面证据。
那个方法有点过时了——我已经简化了几个步骤;有一个独立的预编译工具应该可以工作:
运行
precompile "SomePath/YourDto.dll" -t:MySerializer -o:MySerializer.dll
(可能在此之前使用mono 以获取单声道来托管 exe)
这应该解析框架并编译一个您可以引用的MySerializer.dll,它涉及零 JIT(MySerializer.dll 将引用您的 dto dll 和您的 dto dll 引用的 protobuf-net 版本)
new MySerializer().Serialize(...) 就可以正常工作
我很乐意提供指导,但目前我没有 mac,所以我现在无法检查。如果您遇到任何问题,请告诉我。如果不能解析框架,可以加-f:{path to the framework assemblies}给个提示。
【讨论】: