nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

XamarinでもAOPしたい! Cauldron.Interception.Fody編

前回XamarinでAOPするにはIL弄るライブラリを自作するしかないと言ったな?
あれは嘘だ。Cauldron.Interception.Fodyを使えばできる。

www.nuget.org

なんてこった…まぁ皆さんには朗報ですしょう。私は赤面の限りですが。

という訳で、今回はCauldron.Interception.Fodyを使ってXamarinでAOPをする方法(正確にはメソッド呼び出しをインターセプトする方法)を紹介したいと思います。

続きを読む

XamarinでもAOPしたい! 希望編

この記事は [初心者さん・学生さん大歓迎!] Xamarin その1 Advent Calendar 2017 の6日目の記事です。

qiita.com

空いたままだったのが忍びなく埋めようと書いた記事なので、完成まで到達できていませんがその辺はご容赦ください。
予定では25日の本チャン?までには完成する…といいな?的な?

続きを読む

やっぱりXamarin.iOSではRealProxyは使えなかった話

動的コード生成が絡むだろうし無理だろうと思ってたんですが、なぜかRealProxyクラスはあってコンパイルはできるので試してみました。

f:id:nuitsjp:20171204133000p:plain

はい、ダメでした。bugzillaにも上がってますね。動的生成コードが多くなるからiOSじゃ無理だよと。
27847 – Linked away exception on CallContext.LogicalGetData("SomeString") on device not simulator

しかしなぜRealProxyクラスがあるんだろう?Xamarin.Macのため??良く分かりません。まぁいっか。

AOPの手段を検討してたんですが、やっぱりIL弄るしかないですかね。 全部Commandパターンにするという荒業も無い訳ではないですが、それはやりたくないのでIL操作かな。 良く分かってないので辛いなあ。

Xamarin.Forms 2.5.xで「"Xamarin.Forms.Build.Tasks.GetTasksAbi" タスクをアセンブリ~から読み込めませんでした。」というエラーが発生する場合の対処方法

とりあえずメモ程度に。

  1. Xamarin.Formsのバージョンを最新に更新する(2.5.0.77107だと無理かも知れません)
  2. ソリューションをクローズして開き直す

これでだめなら、Visual Studioを再起動しましょう。
一応私はこれでいけました。
海外のフォーラムでも同様の問題を見かけましたが、対処方法はこれ以外見当たりません。

forums.xamarin.com

技術書典3にXamarin本出展します!

来る11月22日(日)に秋葉原UDXにて技術書展3が開催されます。

techbookfest.org

今回も榎本さん率いるサークル「Xamaritans」では新刊「Extensive Xamarin」を用意してお待ちしております。 新刊の詳細情報はこちら。

https://atsushieno.github.io/xamaritans/tbf3.html

今回も私も「Plugins for Xamarin & Unit Test」という内容で寄稿させていただいています。 具体的には

  • Plugins for Xamarinの詳細な仕組みについて
  • Plugins for Xamarinを利用する場合のUnit Test戦略について

記載させていただいています。 他にも面白そうな記事が目白押しです。

残念ながら当日は家庭の事情で現地には行けませんが、興味のある方はぜひお手に取ってみていただけないでしょうか? また既刊である「Essential Xamarin」の商業誌版も当日は併売いたしますので、興味のある方はぜひお立ち寄りください!

www.amazon.co.jp

それでは(某たっきー&つばさコンビが)お待ちしております!