【问题标题】:Open source AOP library for .NET with no interception limitations.NET 的开源 AOP 库,没有拦截限制
【发布时间】:2013-03-26 20:18:49
【问题描述】:

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

显而易见的问题是;我想知道我应该为 .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: 根据Policy Injection Application Block 的帖子,这是一个遗留组件,现在可能不再受 MS 支持,因为它是通过 Unity 拦截机制实现的,因此它具有与Spring.NET (Alternatives to PostSharp)

我看到了Aspect Oriented Programming: learn step by step and roll your own implementation! 的帖子。我还没有使用它,但通读这篇文章让我知道它应该服务于我的目的。我想知道是否有人尝试过,是否建议尝试?

我还有一个问题要问;我已经将 Unity 用于 DI,这一切都很酷,但对于 AOP,unity 对我的目的来说不是一个好的选择,因此我肯定会选择其他一些工具/库(也许是我上面建议的那个!)。 Unity和AOP的其他东西在同一个应用中好不好,会不会有什么问题?

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

【问题讨论】:

  • 为什么需要开源工具?

标签: aop


【解决方案1】:

我认为,一旦您排除 PostSharp 并且还想拦截静态代码,您会发现很少有好的选择。

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

【讨论】:

  • 感谢 Mgroves 的回复。我会看看你的建议。
猜你喜欢
  • 1970-01-01
  • 2015-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
相关资源
最近更新 更多