2010-10-05 86 views
4

如何表达仅在从另一个方法内调用时才能找到方法的点切换,但不能直接进行?AscutJ与切入点混淆

例如:

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

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

我只想切入点,为中富()

我想工作 “withincode”,但似乎只有工作直。

感谢 埃里克

回答

4

你真正想要什么,需要两个joinpoints:在酒吧类

  1. call方法或构造,并within Foo类或最终美孚()与withincode标志构造。对这个连接点的建议可以例如设置一个标志,当从Foo()调用时为true,否则就会失败。这个变量可以存储在一个HashMap中,其线程作为关键字来避免并发问题。
  2. withincode Bar()构造函数或Bar类中的和call object.Method()。此连接点的建议还必须检查该标志是否设置为true。最后将Foo标志再次设置为false。
+1

我认为cflow和cflowbelow只是用来处理执行流程中的这种类型的标记。 – PomCompot 2012-04-18 08:59:46