前回XamarinでAOPするにはIL弄るライブラリを自作するしかないと言ったな?
あれは嘘だ。Cauldron.Interception.Fodyを使えばできる。
なんてこった…まぁ皆さんには朗報ですしょう。私は赤面の限りですが。
という訳で、今回はCauldron.Interception.Fodyを使ってXamarinでAOPをする方法(正確にはメソッド呼び出しをインターセプトする方法)を紹介したいと思います。
続きを読む今日、Visual Studio 2015の新しい更新(15.5)が来ましたね。
今回はXamarin関連でも非常に魅力的なアップデートが来ていますので簡単に紹介しておきたいと思います。
動的コード生成が絡むだろうし無理だろうと思ってたんですが、なぜかRealProxyクラスはあってコンパイルはできるので試してみました。
はい、ダメでした。bugzillaにも上がってますね。動的生成コードが多くなるからiOSじゃ無理だよと。
27847 – Linked away exception on CallContext.LogicalGetData("SomeString") on device not simulator
しかしなぜRealProxyクラスがあるんだろう?Xamarin.Macのため??良く分かりません。まぁいっか。
AOPの手段を検討してたんですが、やっぱりIL弄るしかないですかね。 全部Commandパターンにするという荒業も無い訳ではないですが、それはやりたくないのでIL操作かな。 良く分かってないので辛いなあ。
SQL ServerのOPTION (RECOMPILE)や、他DBの同等機能の利用で十分なケースも多いでしょうが、それらを利用せずに静的なSQLだけで解決するのは良くないよと言うお話です。
続きを読むとりあえずメモ程度に。
これでだめなら、Visual Studioを再起動しましょう。
一応私はこれでいけました。
海外のフォーラムでも同様の問題を見かけましたが、対処方法はこれ以外見当たりません。
来る11月22日(日)に秋葉原UDXにて技術書展3が開催されます。
今回も榎本さん率いるサークル「Xamaritans」では新刊「Extensive Xamarin」を用意してお待ちしております。 新刊の詳細情報はこちら。
https://atsushieno.github.io/xamaritans/tbf3.html
今回も私も「Plugins for Xamarin & Unit Test」という内容で寄稿させていただいています。 具体的には
記載させていただいています。 他にも面白そうな記事が目白押しです。
残念ながら当日は家庭の事情で現地には行けませんが、興味のある方はぜひお手に取ってみていただけないでしょうか? また既刊である「Essential Xamarin」の商業誌版も当日は併売いたしますので、興味のある方はぜひお立ち寄りください!
それでは(某たっきー&つばさコンビが)お待ちしております!