PostSharp 与 DynamicProxy2 接口拦截

发布于 2024-10-27 07:12:24 字数 132 浏览 6 评论 0原文

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

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

谢谢。

I've used PostSharp in the past to do AOP and I've been checking out AOP using Autofac and DynamicProxy2 and I'm curious if there are any benefits of one of the other.

i.e. Is one more reliable, testable, stable, performant, etc, etc than the other?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

£冰雨忧蓝° 2024-11-03 07:12:24

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

To better explain what @jgauffin said, PostSharp uses MSIL rewriting after the compiler builds your C# and inserts the code you wrote into the specific pointcuts you set for the aspect. PostSharp goes beyond that though and does many smart optimization checks to help squeeze the most performance out. See http://programmersunlimited.wordpress.com/2011/03/23/postsharp-weaving-community-vs-professional-reasons-to-get-a-professional-license/ for more info about that.

DynamicProxy2 is JIT-emitted which means runtime. IMO if you're just dealing with cross-cutting concerns then use a compile time AOP framework like PostSharp. But if you need to have dynamic changes at runtime then PostSharp isn't for you.

合约呢 2024-11-03 07:12:24

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

PostSharp is run at compile time, so it should be faster. (It inject it's code to your assemblies)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文