我喜欢在类中添加跟踪进入和离开的每个方法。并在发生异常时跟踪参数。使用PostSharp AOP,我不需要将它放在每个方法中,只需应用属性。但我买不起PostSharp。
有替代方法吗? Unity3D能做到吗?
我正在使用log4net来记录消息。
答案 0 :(得分:1)
是的,您可以使用Unity进行面向方面编程和拦截。
Unity是一个轻量级,可扩展的依赖注入容器 支持实例和类型拦截。
Dino Esposito写了一篇很棒的文章:Aspect-Oriented Programming, Interception and Unity 2.0
Unity 2.0中的拦截
Unity中拦截的核心思想是让开发人员能够自定义所需的调用链 调用对象上的方法。换句话说,Unity 拦截机制捕获对配置对象的调用 并通过添加一些额外的东西来自定义目标对象的行为 常规执行方法之前,之后或周围的代码。 拦截本质上是一种非常灵活的添加新方法 在运行时对对象的行为,而不触及其源代码和 而不影响同一继承中的类的行为 路径。
还有一篇关于Interception using Unity的精彩模式和实践文章。 文章中的示例代码使用拦截执行日志记录。