我试图将Castle Windsor的日志记录依赖项注入我的代码中。更准确地说,每当类中的方法引发错误或应用程序流进入方法时,它就简单地登录到文件中。如何通过不写任何东西来做到这一点

logger.Debug("Error code");


在方法中明确地为每个方法。假设我们在每个类或方法上添加属性以利用其日志记录功能。

提前致谢。

最佳答案

在温莎城堡中使用interceptor facility

所以用

[Interceptor(typeof(UnhandledExceptionLogger))]


并创建实现UnhandledExceptionLogger的类IInterceptor。大致:

public void Intercept(IInvocation invocation) {
    try {
        invocation.Proceed();
    }
    catch (Exception e) {
        // log the exception e
        throw;
    }
}


然后,当Castle Windsor创建标有该Interceptor的类的实例时,它将创建一个代理,该代理将所有方法调用包装在上述try / catch log / rethrow块中。

10-08 02:18