独り言 : S2Container.NET
以下公式サイトより。
>アスペクトを適用するためにはコンポーネントをインターフェース型で受け取ります。
>S2Containerから直接受け取るコンポーネントにアスペクトを適用するには、 コンポーネントがSystem.MarshalByRefObjectの派生クラスである必要があります。
>pointcut属性を指定しない場合、pointcut属性に".*"と指定した場合は、 実装しているインターフェースのすべてのメソッドが対象になります。
>thisポインタ経由の場合(インターフェース経由で呼ばれない場合)はアスペクトは適用されません。
恥ずかしながら気付かないでかなりハマりました。
お仲間発見w
ASP.NET+S2Container.NET+log4netでWebFormのイベントメソッドに対してAOPでログを出力できる仕組みを用意しようかと、数時間悩んでましたorz
インターフェースを用意すればいいわけですが、そこまでする必要があるか?なお話になってきそうです。
もしやるならば、「操作の複雑な画面で、ある一定の操作をすると起こる不具合がでそうな^^;」画面を対象に、画面イベントをインターフェース化しておいて、S2Container.NETのAOP+log4netでログ出力ですかね。そうすると通常はS2Container.NETの設定ファイルからどのイベントで出力するかの制御ができるし、ログの出力先もlog4netの設定ファイルで変更が可能。DBにも保存できます。
んで、実際に不具合でてしまったら、ログ出力して解析と。メソッドの開始終了時にログ出力できるので、ホントにイベントが乱発する画面やら処理だととても役立ちそうです。
投稿日時 : 2007年4月14日 20:48