介绍

  1. public void Intercept(IInvocation invocation)
  2. {
  3. //记录被拦截方法信息的日志信息
  4. var dataIntercept = $"{DateTime.Now} " +
  5. $"当前执行方法:{ invocation.Method.Name} ";
  6. //在被拦截的方法执行完毕后 继续执行当前方法,注意是被拦截的是异步的
  7. invocation.Proceed();
  8. dataIntercept += ($"方法执行完毕,返回结果:{invocation.ReturnValue}");
  9. #region 输出到日志文件
  10. #endregion
  11. }

只需要我们 ServiceConfigure 中开启服务以后,就可以在指定文件中,看到每次的切面接口调用情况,注意这里是 service 层的,不是 controller 的日志,这个时候就是 AOP 和过滤器 Filter 的区别了:

  • 1、Filter过滤器是基于当前Http请求的,也就是接口层面的,颗粒度比较大;
  • 2、而AOP是基于服务切面的,是 Service 层的请求,颗粒度比较小;