C#で簡単にAOPが実現できる方法はないかと探していてみつけた。
PostSharpというオープンソースのプロジェクト。
http://www.postsharp.org/
面白いのでちょっと触ってみた。
概要
.NET環境でAOPを実現するオープンソースで、コミュニティーもしっかりしてそう。
仕組みとしては、プロジェクトをビルドした後で、Addinがポストビルドを行いAspectをWeavingする方式だ。
プログラミング自体は非常に簡単で設定ファイルなどもまったく不要。
実装方法(略式)
1. Attribute(Javaで言うアノテーション)クラスを作る。
→OnMethodBoundaryAspectクラスを継承する。
→OnEntryメソッド、OnExitメソッドをそれぞれオーバーライドして織り込む処理を記述する。
2. Weaving対象のメソッドにAttributeをつける。
以上である。
(更に詳しいやり方は、getting start のページにある。)
http://www.postsharp.org/about/getting-started/
ビルドするマシンにはVisual Studioのアドインをインストールする必要がある。
ウィザード形式でたったの5分だから、インストール自体はストレスはないが、プロジェクトで使うとなると、実装者全員にインストールしてもらわなくてはならない。
実際に実装してみたが、あっという間にAOPが実現できて簡単でうれしい。