使用protobuf网在Xamarin.iOS没有完全AOT(Using Protobuf-Net

2019-08-22 06:50发布

是否有任何替代使用Xamarin.iOS(MonoTouch的)实现对象的串行化和deserialising protobuf网比这个方法等:

http://www.frictionpointstudios.com/blog/2011/3/31/using-protobuf-net-serialization-in-unity-iphone.html

周围的一些人读声称,他们已经处理了它(没有提供证据),但我的理解是,[iOS的JIT == NO]所以没有引起太大的意义。

如果唯一可能的解决方案是完全AOT所有相关类可能适合的前/生成后事件命令行是怎样为自动任何相关组件执行此AOT?

Answer 1:

我听到许多人都必须通过这条路线的成功,但我也不能放弃凭据的当天。

这种方法是有点过时了 - 我已经简化了几步; 有一个独立的预编译的工具,应该工作:

  • 创建要序列化引用protobuf网的相应版本的DTO的项目/组件; 想必CoreOnly / IOS,最好与DLL设置复制到输出目录(它只是使生活更轻松)
  •  precompile "SomePath/YourDto.dll" -t:MySerializer -o:MySerializer.dll 

    (也许用mono之前,为了获得单主办的exe)

    这应该解决的框架和编译MySerializer.dll ,你可以参考,这涉及到零JIT( MySerializer.dll将引用您的DTO DLL和你的DTO DLL引用protobuf网的版本)

  • 现在引用您的DTO的dll,串行DLL和protobuf网DLL,它都应该用刚工作new MySerializer().Serialize(...)
  • 当您编译您的解决方案,这些项目都应该很好地AOT

我会很乐意提供指导,但目前我的MAC-少,所以现在我无法检查。 如果你得到任何问题,让我知道。 如果它不能解析的框架,你可以添加-f:{path to the framework assemblies}给它一个线索。



文章来源: Using Protobuf-Net In Xamarin.iOS without full AOT