.NET的开源AOP库,没有拦截限制

时间:2013-04-04 16:25:25

标签: aop

这个主题可能看起来已经讨论过,但我还有很多话要说和问。

显而易见的问题是;我想知道我应该为.NET 4.0企业应用程序使用什么AOP库?根据帖子What Aspect-Oriented Programming (AOP) libraries for .NET are still actively developed,应该选择PostSharp或Spring.NET或Microsoft的Policy Injection Application Block。但每个人都有问题。

  1. PostSharp:这是最好但不开放。我需要一个源是开放的。
  2. Spring.NET:这个太重了,有限制就像它只能拦截那些非静态的类,必须是非密封的,属性和方法必须是虚拟的等等......
  3. Microsoft的策略注入应用程序阻止:根据帖子Policy Injection Application Block,这是一个遗留组件,可能会停止受MS支持,因为它是通过Unity拦截机制实现的它与Spring.NET(Alternatives to PostSharp
  4. 的限制相同

    我遇到了帖子Aspect Oriented Programming: learn step by step and roll your own implementation!。我还没有使用它,但通过阅读帖子给了我一个想法,它应该符合我的目的。我想知道是否有人试过它,是否建议去寻求它?

    我还有一个问题要问;我已经使用了Unity for DI而且它很酷但是对于AOP来说,统一对我来说不是一个好选择,因此我肯定会选择其他工具/库(也许是我上面提到的那个!)。在同一个应用程序中使用Unity和其他AOP是否有用,是否会有任何问题?

    有人可以帮我吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

我认为一旦排除PostSharp并且还想拦截静态代码,你会发现一些不错的选择。

您可能检查的一些选项是SheepAspect和Fody,它们都采用类似于PostSharp(编译后编织)的方法。两者都非常好并且显示出前景,但与PostSharp相比相对年轻。