present@わんくま

本家はこちら

目次

Blog 利用状況

ニュース

アクセサリ

書庫

日記カテゴリ

ギャラリ

リンク

EntLib4.1 での PIAB 仕様変更 (2)

はじめに

先日に引き続き Policy Injection Application Block (以下 PIAB) の変更点を調べました。

変更点

EntLib4.1 では、メソッドのインターセプトを Unity がやってくれるようになりました。 PIAB は Unity の機能を利用するだけです。

Unity を使ったメソッドのインターセプト方法

Microsoft.Practices.Unity.Interception を参照に追加し、例えば下記のようなコードを書けばOKです。

// DI コンテナを生成する。
IUnityContainer container = new UnityContainer();

// DI コンテナのインスタンス生成パイプラインを拡張する。
// インスタンスをラップしてメソッドをインターセプト可能にする処理が追加される。
container.AddNewExtension<Interception>();

// DI コンテナから取得するインスタンスをインターセプトする方法を指定。
container.Configure<Interception>()
         .SetInterceptorFor<IAnimal>(new TransparentProxyInterceptor());

// 型を登録する。
container.RegisterType<IAnimal, Wankuma>("Wankuma");

// コンテナから取得した animal オブジェクトの、
// Cry メソッドはインターセプトされる。
var animal = container.Resolve<IAnimal>("Wankuma");
animal.Cry();

最後に

Unity だけでアスペクト指向プログラミングが可能になっています。 PIAB の存在意義が・・・(;^_^A

投稿日時 : 2008年12月4日 9:46

コメントを追加

# http://burberry.suppa.jp/ 2012/11/06 17:51 バーバリー バッグ 一覧

匿名なのに、私には誰だか分かる・・・(^_^;)ありがとう。。。

タイトル
名前
URL
コメント