2011-03-24 73 views
3

我以前用过PostSharp来做AOP,我一直在用Autofac和DynamicProxy2检查AOP,我很好奇它是否有其他优点。PostSharp vs DynamicProxy2 Interface Interception

即一个比另一个更可靠,可测试,稳定,高性能等等?

谢谢。

+0

你的目标是什么?运行时动态代码(依赖注入等)还是仅仅为了处理您的交叉问题? – 2011-03-24 21:11:15

+0

也检出http://www.sharpcrafters.com/postsharp/alternatives – 2011-03-24 21:12:36

+0

@DustinDavis - 主要是横切关注,例如AOP日志记录。 – Adam 2011-03-24 21:36:27

回答

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发出的,这意味着运行时。国际海事组织,如果你只是处理横切关注,然后使用像PostSharp编译时AOP框架。但是如果您需要在运行时进行动态更改,则PostSharp不适合您。

+0

谢谢。我过去曾使用过PostSharp并喜欢它。我读过一些博客和文章,指的是使用DynamicProxy2进行接口拦截而不是PostSharp。老实说,我认为DynamicProxy2有它的地方,但我不认为我有他们在做什么。 – Adam 2011-03-24 21:37:11

+0

@Adam,如果您需要PostSharp帮助,请随时与我联系。 – 2011-03-24 22:26:06

0

PostSharp在编译时运行,所以它应该更快。 (它将代码注入到程序集中)