かずきのBlog

C#やJavaやRubyとメモ書き

目次

Blog 利用状況

ニュース

わんくまBlogが不安定になったため、前に書いてたはてなダイアリーにメインを移動します。
かずきのBlog@Hatena
技術的なネタは、こちらにも、はてなへのリンクという形で掲載しますが、雑多ネタははてなダイアリーだけに掲載することが多いと思います。
コメント
プログラマ的自己紹介
お気に入りのツール/IDE
プロフィール
経歴
広告
アクセサリ

書庫

日記カテゴリ

[WPF][C#][EntLib]UnityでAOP その2

その1では、TransparentPolicyInjectorを使ってアノテーションベースで処理をインジェクションしてた。
この方法だと、100クラスあると100個属性つけてコンテナ側でも100個TransparentPolicyInjectorを設定しないといけない。
これは、とても使う気になれない!と思って調べてみると、楽する方法があった。

MatchingRuleとPolicyDefinitionというものでいけそう。MatchingRuleで、対象にするクラスのルールを作って、PolicyDefinitionでルールに該当するクラスに何の処理を差し込むか決めれる。
早速実験だ。

UnityEdication2という名前でプロジェクトを作って、前回作ったIGreeterとPersonとLoggingHandlerをコピーする。名前空間はUnityEducationの部分をUnityEducation2に変更しておく。

とりあえずさくっと作る。

class Program
{
    static void Main(string[] args)
    {
        IUnityContainer c = new UnityContainer();

        // Interceptionの拡張を追加
        c.AddNewExtension<Interception>();

        // コンテナにマッチングルールを登録する
        c.RegisterInstance<NamespaceMatchingRule>(
            "test",
            new NamespaceMatchingRule("UnityEducation2.Entities"));

        // Interceptionの設定
        c.Configure<Interception>().
            // IGreeterにはTransparentProxyInterceptorを使う
            SetInterceptorFor<IGreeter>(new TransparentProxyInterceptor()).
            // UnityEducation2.Entities名前空間のクラスに
            // LoggingHandlerを適用するポリシーを作成
            AddPolicy("EntitiesLoggingPolicy").
                AddMatchingRule<NamespaceMatchingRule>("test").
                AddCallHandler<LoggingHandler>();

        // インスタンスをコンテナに登録
        c.RegisterInstance<IGreeter>(new Person { Name = "大田" });

        // インスタンスをコンテナから取得して挨拶文を表示
        var ohta = c.Resolve<IGreeter>();
        Console.WriteLine(ohta.Greet());
    }
}

21行目のAddPolicyから3行がポイント。これをすることで、Personクラスへのアノテーションが不要になる。
クラスの数が増えてくると、ぐぐっと楽さ加減が変わってくるかな。

でも残念なのが、SetInterceptorForメソッドは、インターフェース単位でしか指定できない。これは100個あったら100行書けってことなのかな???

とりあえずIBaseみたいなマーカーインターフェースを作って、そいつを必ず実装すること!みたいなルールで実装するようにしてSetInterceptorFor<IBase>(new TransparentProxyInterceptor())をするのが楽なのかな。
好みのやり方ではないけど…

悩ましい。

投稿日時 : 2008年11月2日 2:32

Feedback

# sacs lancel 2012/10/19 14:08 http://www.saclancelpascher2013.com

Real wonderful information can be found on site . "Preach not to others what they should eat, but eat as becomes you, and be silent." by Epictetus.

# cheap louis vuitton purses 2012/10/28 3:09 http://www.louisvuittonoutletbags2013.com/

Certainly never grimace, no matter if you're the one upsetting, when you never know who may be drifting down in love with your ultimate grinning.
cheap louis vuitton purses http://www.louisvuittonoutletbags2013.com/

# louis vuitton wallet 2012/10/28 3:09 http://www.louisvuittonwallets2013.com/

Appreciate is actually fragile found at inception, it becomes more muscular as we grow older if sufficiently fed.
louis vuitton wallet http://www.louisvuittonwallets2013.com/

# Burberry Tie 2012/10/28 16:51 http://www.burberryoutletonlineshopping.com/burber

I'll right away snatch your rss as I can not find your email subscription hyperlink or e-newsletter service. Do you have any? Please let me realize so that I may just subscribe. Thanks.
Burberry Tie http://www.burberryoutletonlineshopping.com/burberry-ties.html

# cheap burberry bags 2012/10/28 16:51 http://www.burberryoutletonlineshopping.com/burber

Thanks for the sensible critique. Me & my neighbor were just preparing to do some research about this. We got a grab a book from our area library but I think I learned more clear from this post. I am very glad to see such magnificent information being shared freely out there.
cheap burberry bags http://www.burberryoutletonlineshopping.com/burberry-tote-bags.html

# mens shirts 2012/10/28 16:51 http://www.burberryoutletonlineshopping.com/burber

Appreciate it for helping out, excellent info .
mens shirts http://www.burberryoutletonlineshopping.com/burberry-men-shirts.html

# burberry watches on sale 2012/10/28 16:51 http://www.burberryoutletonlineshopping.com/burber

Thanks for helping out, excellent information. "The four stages of man are infancy, childhood, adolescence, and obsolescence." by Bruce Barton.
burberry watches on sale http://www.burberryoutletonlineshopping.com/burberry-watches.html

# scarf 2012/10/28 16:52 http://www.burberryoutletonlineshopping.com/burber

I do consider all of the concepts you've presented to your post. They are really convincing and can certainly work. Nonetheless, the posts are very brief for beginners. May you please extend them a bit from subsequent time? Thanks for the post.
scarf http://www.burberryoutletonlineshopping.com/burberry-scarf.html

# ブランド商店 2016/02/25 13:23 b4sc1le170

http://www.ooobrand.com/clocks/breitling/index.html
弊社は海外安心と信頼のプラダ 時計 コピーです。2016 新作が満載!皆様を歓迎して当店をご光臨賜ります。ロレックス時計コピー,パネライ時計コピー,ウブロ時計コピー ,ブライトリング時計コピー,IWC時計コピー,フランクミュラー時 計コピー,ショパール時計コピー,フェラーリ時計コピー,グラハム 時計コピー,ハリー ウィンストン時計コピー等。サイトは世界一流ブランド }}}}}}

# シャネルバッグ/財布/新作 2017/11/02 12:29 ibznaf@softbank.ne.jp

対応がとても早くて、驚きました。
梱包がとても綺麗で新品を購入したとは思えませんでした。
★ルイヴィトン★モノグラム★ノエ★巾着型ショルダーバッグ★M42224(旧型)★
とてもよい品でした。
ジャンク品に近い品を、破格値で購入したいと思って探していたところ、見つけたのがこのバッグでした。
誰が見ても一目でブランドバックだとわかる、ヴィトンのバッグでよれよれの使い古しを購入するのが私の望みでした。若い頃からずっと使っていると言えるし、雨の日でも濡れてももったいなくありません。
正直、にせものであっても、この価格ならあきらめもつくと考えていました。
(大きく商売をしている質屋さんでも、にせものを本物として高価買取をして、そのまま直営店で売っているケースもあります)
届いた商品を見てびっくりしました。
思っていたよりもずっと状態が良くて、自分で使うならまだまだ十分使えます。
それに、何よりも、本物のヴィトンだったことが一番うれしかったです。
刻印、製造番号他、自分で確かめたところ、すべてのチェックで合格でした。
新品とはいえ、4200円で本物のヴィトンが手に入るとは、思っていませんでした。
実質1315円での購入でした。
とても満足しています。
届いた日の翌日から使っています。毎日使っています。
若いときからずっと使っているのでよれよれになっていると言って、自慢しています。

# Can I simply just say what a relief to find an individual who actually knows what they are talking about on the web. You certainly realize how to bring a problem to light and make it important. More people need to read this and understand this side of y 2018/09/05 14:46 Can I simply just say what a relief to find an ind

Can I simply just say what a relief to find an individual
who actually knows what they are talking about on the web.
You certainly realize how to bring a problem to light and make
it important. More people need to read this and understand this side of your story.
It's surprising you aren't more popular because you certainly have the
gift.

# I was curious if you ever considered changing the page layout of your website? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of 2018/10/09 21:41 I was curious if you ever considered changing the

I was curious if you ever considered changing the page layout of your website?
Its very well written; I love what youve got to say.
But maybe you could a little more in the way of content so people could connect
with it better. Youve got an awful lot of text for only having
one or two images. Maybe you could space it out better?

# Fine way of explaining, and pleasant paragraph to obtain information about my presentation focus, which i am going to convey in university. 2018/10/27 22:48 Fine way of explaining, and pleasant paragraph to

Fine way of explaining, and pleasant paragraph to obtain information about my presentation focus, which i am going to convey in university.

# My coder is trying to persuade me to move to .net from PHP. I have always disliked the idea because of the costs. But he's tryiong none the less. I've been using WordPress on a variety of websites for about a year and am anxious about switching to anoth 2018/10/28 3:09 My coder is trying to persuade me to move to .net

My coder is trying to persuade me to move to .net from PHP.
I have always disliked the idea because of the costs.
But he's tryiong none the less. I've been using WordPress on a
variety of websites for about a year and am anxious about switching to another platform.

I have heard very good things about blogengine.net. Is there a way I can import all
my wordpress content into it? Any kind of help
would be really appreciated!

# Hi! I've been following your web site for some time now and finally got the courage to go ahead and give you a shout out from Humble Texas! Just wanted to mention keep up the excellent work! 2018/11/04 8:41 Hi! I've been following your web site for some tim

Hi! I've been following your web site for some time now and finally got the courage to go ahead and give
you a shout out from Humble Texas! Just wanted to mention keep
up the excellent work!

# Link exchange is nothing else however it is simply placing the other person's weblog link on your page at suitable place and other person will also do same in support of you. 2019/04/17 23:04 Link exchange is nothing else however it is simply

Link exchange is nothing else however it is simply placing the
other person's weblog link on your page at suitable
place and other person will also do same in support of you.

# Highly descriptive post, I liked that a lot. Will there be a part 2? pof natalielise 2019/08/02 15:49 Highly descriptive post, I liked that a lot. Will

Highly descriptive post, I liked that a lot. Will there be a part 2?
pof natalielise

# hello!,I really like your writing so so much! proportion we be in contact more approximately your article on AOL? I need an expert in this area to solve my problem. Maybe that's you! Taking a look ahead to see you. 2019/09/07 22:31 hello!,I really like your writing so so much! prop

hello!,I really like your writing so so much! proportion we be in contact more approximately your article on AOL?
I need an expert in this area to solve my problem. Maybe that's you!
Taking a look ahead to see you.

# rOPnRcPLuh 2022/04/19 12:27 markus

http://imrdsoacha.gov.co/silvitra-120mg-qrms

# Thanks for sharing your thoughts on C#. Regards http://datasciencemetabase.com/index.php/User:CelsaConte18965 http://www.geocraft.xyz/index.php/User:JennyGatling https://vanburg.com/mw19/index.php/Benutzer:Roscoe7371 http://datasciencemetabase.com/ind 2022/05/21 20:06 Thanks for sharing your thoughts on C#. Regards h

Thanks for sharing your thoughts on C#. Regards

http://datasciencemetabase.com/index.php/User:CelsaConte18965
http://www.geocraft.xyz/index.php/User:JennyGatling
https://vanburg.com/mw19/index.php/Benutzer:Roscoe7371
http://datasciencemetabase.com/index.php/Be_Taught_Anything_New_From_Mortgage_Lenders_In_San_Jose_Ca_Recently_We_Requested_You_Answered
http://classicalmusicmp3freedownload.com/ja/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:LawerenceOctoman
https://www.vaultofweird.com/index.php?title=The_Best_Mortgage_Brokers_In_San_Jose_CA

# 時計コピー 2022/10/02 22:57 vvtcuokbvz@live.jp

格安販売 顧客は至上≡≡★★★★★★大注目★★★★★≡≡≡≡≡
時計コピー https://www.bagraku.com/Product/PicView/?picid=31647&proid=7682

# ロレックスコピー 2023/05/09 0:04 coxAcquic

激安エルメス ケリー, エルメスN品 ボリード}}}}}}
https://www.bagssjp.com/menu/menu_pinpai-3-114.html
https://www.bagssjp.com/product/detail-2718.html
https://www.bagssjp.com/product/detail-591.html
https://www.bagssjp.com/product/detail-4002.html
https://www.bagssjp.com/product/detail-4368.html

# カルティエ時計 バイマ 2023/11/08 3:14 lgaljk@goo.ne.jp

人気腕時計
2023新作の展示,新品種類がそろっています!
当社の商品は絶対の自信が御座います。
★信用第一、良い品質、低価格は(*^-^*)
★当店の承諾に→誠実 信用
★送料無料(日本全国)
※ご注文の方は、ご連絡下さい。期待!!
※以上 宜しくお願い致します。(^0^)
カルティエ時計 バイマ https://www.bagtojapan.com/product/3237.htm

タイトル
名前
Url
コメント