XamarinでUtf8Jsonを使おうとしてドはまりした話
最強Jsonシリアライザと噂のUtf8JsonをXamarinで使用しようとしてドはまりした話です。
公式のGithubは↓です。使用の仕方からすごくわかりやすく記述されています!
neue cc - Utf8Json - C#最速のJSONシリアライザ(for .NET Standard 2.0, Unity)
はまった原因としては。。。うん。まぁ環境構築やらで自分のやり方が悪いだけな気がします。。。
新規プロジェクトの作成から
ひとまずUtf8JSonは.netframework4.5からってことのようなので
.netframework4.5.2、Xamarin.Forms + PCLの上図みたいな構成で
新規にプロジェクトを作ってみました。
Utf8Jsonは公式GithubのREADMEどおりに、NuGetからパッケージインストールしてみます。
あーはん?
んー。Dependencyの子たちをInstallしてみようとしてもうまくいかない。。
.netframeworkのPCLのプロファイル構成を111とかに変更したり
.netframework4.5.2ではなく、4.5で新規にプロジェクトを作り直したり
VisualStudio for macで作ったりしてもダメだったので
.netstandard2.0のPCLにする方法で手を打ってみます。
.netstandard2.0のPCL構成に変更
とおもったけどデフォルトで.netstandard2.0なPCLの構成はつくれないのかな?
nuitsさんのこちらの記事を参考に、.netstandardなPCLを作成してみました。
上記の通り.netstandard、PCLライブラリもできて
エミュレータ上で実行確認できたので、本命のUtf8JsonをInstallしてみます!
うひょー!
Utf8Jsonうごくかためしてみる
Utf8Jsonの依存先のCLが、内部を実装してないと意味がないので動作するか試してみます。
確認につかったソースは公式のGithubのREADMEそのまんまです。
いぇあ!うごきました!
今回、XamarinFormsのプロジェクトに直接突っ込もうとしてドはまりしたわけだけど
実際の運用を考えるとUtf8Jsonを使用するような処理を切り出して
.netstandardのプロジェクトを別個作成することにはなると思う。