Laymans术语让我举个例子.假设您有一个Web应用程序,并且需要添加错误日志记录/审核.一个实现是进入每个公共方法并添加try catch块等...
面向Aspect的方面说hogwash,让我在你的方法周围注入我的方法,例如,而不是调用YourClass.UpdateModel(),系统可能调用,
LoggingHandler.CallMethod()然后,此方法可能会将调用重定向到UpdateModel,但将其包装在try catch块中以处理日志记录错误.
现在的诀窍是,这种重定向是自动发生的,通过配置或通过将属性应用于方法.
这适用于您所说的交叉切割事物,这是每个域中存在的非常常见的编程元素,例如:日志记录,审计,事务管理,授权.
它背后的想法是从您的业务/应用程序层中删除所有这些常见的管道代码,以便您可以专注于解决问题,而不必担心记录此方法调用或该方法调用.
Laymans术语让我举个例子.假设您有一个Web应用程序,并且需要添加错误日志记录/审核.一个实现是进入每个公共方法并添加try catch块等...
面向Aspect的方面说hogwash,让我在你的方法周围注入我的方法,例如,而不是调用YourClass.UpdateModel(),系统可能调用,
LoggingHandler.CallMethod()然后,此方法可能会将调用重定向到UpdateModel,但将其包装在try catch块中以处理日志记录错误.
现在的诀窍是,这种重定向是自动发生的,通过配置或通过将属性应用于方法.
这适用于您所说的交叉切割事物,这是每个域中存在的非常常见的编程元素,例如:日志记录,审计,事务管理,授权.
它背后的想法是从您的业务/应用程序层中删除所有这些常见的管道代码,以便您可以专注于解决问题,而不必担心记录此方法调用或该方法调用.
.NET中的类和方法属性是面向方面编程的一种形式.您使用属性装饰您的类/方法.在幕后,这会为您的类/方法添加代码,以执行属性的特定功能.例如,标记可序列化的类允许它自动序列化以便存储或传输到另一个系统.其他属性可能会将某些属性标记为不可序列化,并且这些属性将自动从序列化对象中省略.序列化是一个方面,由系统中的其他代码实现,并通过应用"配置"属性(装饰)应用于您的类.