【问题标题】:PostSharp vs DynamicProxy2 Interface InterceptionPostSharp vs DynamicProxy2 接口拦截
【发布时间】:2011-03-25 05:17:03
【问题描述】:

我过去曾使用 PostSharp 来执行 AOP,并且我一直在使用 Autofac 和 DynamicProxy2 检查 AOP,我很好奇其中一个是否有任何好处。

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

谢谢。

【问题讨论】:

  • 你的目标是什么?运行时的动态代码(依赖注入等)还是只是为了处理您的横切关注点?
  • @DustinDavis - 主要是横切关注点,例如 AOP 日志记录。

标签: .net aop postsharp


【解决方案1】:

为了更好地解释@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 不适合您。

【讨论】:

  • 谢谢。我过去使用过 PostSharp 并且很喜欢它。我已经阅读了一些关于使用 DynamicProxy2 进行接口拦截而不是 PostSharp 的博客和帖子。老实说,我认为 DynamicProxy2 有它的位置,但我认为我正在做的事情没有它们。
  • @Adam,如果您在 PostSharp 方面需要帮助,请随时与我联系。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-24
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多