有哪些好的资源可以帮助我理解面向切面编程(AOP)?
PS:我需要了解AOP编程,而不是针对.NET或C#可用的库或框架 :)
简单来说:它的能力在于捕获事件,例如对象创建、属性设置等,并将相应上下文内容填充到通用函数中。
由于C#没有内置的此功能,因此需要使用框架(例如PostSharp)进行“字节码编织”(即编写代码以直接向您的类中进行调用)以模拟其行为。
请看这篇文章,它描述了如何使用PostSharp实现AOP(日志记录、时间跟踪、追踪和异常处理)。
http://www.codeproject.com/Articles/337564/Aspect-Oriented-Programming-Using-Csharp-and-PostS
面向切面编程(Aspect Oriented Programming)是指在代码中定义日志记录、安全/访问控制等功能的元级别,而不是每次在代码中实现这些功能。因此,您可以将编程从一维变为二维。
我知道这可能听起来很玄乎,但一旦理解了就很容易。
AOP通常与代理类一起使用,这些代理类拦截调用并在后台执行操作。
MarshalByRefObject
(通过ContextBoundObject
)。
http://www.developerfusion.com/article/5307/aspect-oriented-programming-using-net/3/