我过去曾使用过PostSharp来做AOP,而且我一直在使用Autofac和DynamicProxy2检查AOP,我很好奇是否有其中任何一个有任何好处。
即。一个比另一个更可靠,可测试,稳定,高效等等吗?
感谢。
答案 0 :(得分:5)
为了更好地解释@jgauffin所说的内容,PostSharp在编译器构建C#后使用MSIL重写,并将您编写的代码插入到为方面设置的特定切入点中。 PostSharp超越了这一点,并进行了许多智能优化检查,以帮助挤出最大的性能。有关详细信息,请参阅http://programmersunlimited.wordpress.com/2011/03/23/postsharp-weaving-community-vs-professional-reasons-to-get-a-professional-license/。
DynamicProxy2是JIT发出的,这意味着运行时。 IMO,如果您只是处理跨领域问题,那么使用像PostSharp这样的编译时AOP框架。但是如果你需要在运行时进行动态更改,那么PostSharp不适合你。
答案 1 :(得分:0)
PostSharp在编译时运行,所以应该更快。 (它将它的代码注入到程序集中)