C# 在Spring.Net中向递归方法注入建议?

C# 在Spring.Net中向递归方法注入建议?,c#,recursion,aop,spring.net,C#,Recursion,Aop,Spring.net,我正试图使用Spring.NET对AOP的支持来进行依赖注入/控制反转/面向方面编程(很抱歉出现了这么多的流行语-也许我会发布一个单独的问题,请某人澄清区别:)) 具体来说,我希望截取一个递归方法调用,这样每次调用该方法时,都会调用AOP通知/截取器 除了第一个方法调用之外,Spring.Net似乎没有拦截任何东西。我认为Spring.Net正在为每个实例维护一个拦截器链,并且在第一次方法调用完成之前不会再调用任何拦截器 是否有人知道如何为每个方法调用(包括递归调用)触发拦截器(通知) 如果有帮

我正试图使用Spring.NET对AOP的支持来进行依赖注入/控制反转/面向方面编程(很抱歉出现了这么多的流行语-也许我会发布一个单独的问题,请某人澄清区别:))

具体来说,我希望截取一个递归方法调用,这样每次调用该方法时,都会调用AOP通知/截取器

除了第一个方法调用之外,Spring.Net似乎没有拦截任何东西。我认为Spring.Net正在为每个实例维护一个拦截器链,并且在第一次方法调用完成之前不会再调用任何拦截器

是否有人知道如何为每个方法调用(包括递归调用)触发拦截器(通知)

如果有帮助,我可以提供代码/示例输出。
谢谢

如果您使用的是基于代理的AOP,那么这将不适用于递归方法调用。代理将拦截针对目标的第一个调用,并运行您的建议。然后将调用目标上的方法,随后的调用将留在目标类中,而不知道代理。实现此功能的唯一方法是实际修改字节码,以便类本身包含该行为


实际上,我还没有使用Spring.NET(只有使用Java的Spring),所以很遗憾,我不知道.NET世界中存在哪些字节码编织选项。

请参见

我知道这不是Spring.NET本身,但请看一看。它提供了不依赖于动态代理的编译时编织,并将处理递归方法调用。配置略有不同,但