0

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

显而易见的问题是;我想知道我应该为 .NET 4.0 企业应用程序使用什么 AOP 库?根据帖子What Aspect-Oriented Programming (AOP) library for .NET are still active development ,应该选择 PostSharp 或 Spring.NET 或 Microsoft 的 Policy Injection Application Block。但是每一个都有问题。

  1. PostSharp:这是最好的,但不开放。我需要一个来源是开放的。
  2. Spring.NET:这太重了,并且有限制,比如它只能拦截那些非静态的类,必须是非密封的,属性和方法必须是虚拟的,等等......
  3. Microsoft 的 Policy Injection Application Block:根据 post Policy Injection Application Block,这是一个遗留组件,现在可能不再被 MS 支持,因为它是通过 Unity 拦截机制实现的,因此它具有与 Spring.NET 相同的限制(PostSharp 的替代品

我遇到了面向方面编程的帖子:逐步学习并推出自己的实现!. 我还没有使用它,但通读这篇文章让我知道它应该服务于我的目的。我想知道是否有人尝试过,是否建议这样做?

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

任何人都可以在这里帮助我吗?先感谢您!

4

1 回答 1

0

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

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

于 2013-04-07T19:51:49.420 回答