1

この方法以外に、protobuf-net を使用して Xamarin.iOS (Monotouch) でオブジェクトのシリアル化と逆シリアル化を実現する方法はありますか?

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

何人かの人々がそれを管理したと主張している (証拠を示すことなく) 周りを読んでいますが、私の理解では、[iOS JIT==NO] はあまり意味がありません。

唯一可能な解決策が、関連するすべてのクラスを完全に AOT することである場合、関連するアセンブリに対してこの AOT を自動的に実行するための適切なビルド前/ビルド後のイベント コマンド ラインは何でしょうか?

4

1 に答える 1

4

多くの人がこのルートで成功していると聞いていますが、私も文書化された証拠を示すことができません.

その方法は少し古くなっています - 私はいくつかのステップを単純化しました。動作するスタンドアロンのプリコンパイル ツールがあります。

  • 適切なバージョンの protobuf-netを参照するシリアル化する DTO のプロジェクト/アセンブリを作成します。おそらくCoreOnly / ios、理想的にはそのdllが出力ディレクトリにコピーされるように設定されています(これにより、作業が楽になります)
  • 走る

    precompile "SomePath/YourDto.dll" -t:MySerializer -o:MySerializer.dll
    

    (多分そのmono前にモノを取得してexeをホストします)

    MySerializer.dllこれにより、フレームワークが解決され、参照できるa がコンパイルされます。これには、ゼロ JIT が含まれます ( MySerializer.dlldto dll と、dto dll が参照した protobuf-net のバージョンを参照します)。

  • dto dll、シリアライザー dll、および protobuf-net dll を参照すると、次を使用するだけですべて動作するはずです。new MySerializer().Serialize(...)
  • ソリューションをコンパイルすると、プロジェクトはすべて適切に AOT になるはずです

喜んでご案内させていただきますが、現在私は Mac を使用していないため、今は確認できません。問題が発生した場合はお知らせください。フレームワークを解決できない場合は、追加-f:{path to the framework assemblies}して手掛かりを与えることができます。

于 2013-04-12T11:59:21.530 に答える