4

別のメソッド内から呼び出された場合にのみメソッドを検索し、直接ではないポイントカットを表現するにはどうすればよいですか?

例えば:

Foo() calls Bar() calls object.Method()

また

NotFoo() calls Bar() calls object.Method()

ポイントカットがFoo()内でのみ機能するようにしたい

「withincode」を試しましたが、それは直接機能するようです。

ありがとうエリック

4

1 に答える 1

4

What you want actually requires two joinpoints:

  1. call method or constructor in Bar class and be within Foo class or eventually Foo() constructor with withincode designator. The advice to this joinpoint can for example set a flag that to true when called from Foo() and falso otherwise. This variabel can be stored in a HashMap with the thread as key to avoid concurrency issues.
  2. withincode Bar() constructor or within Bar class and call object.Method(). The advice to this joinpoint must also check if the flag is set to true. And finally set the Foo flag to false again.
于 2010-10-05T10:33:08.187 に答える