介绍
public void Intercept(IInvocation invocation)
{
//记录被拦截方法信息的日志信息
var dataIntercept = $"{DateTime.Now} " +
$"当前执行方法:{ invocation.Method.Name} ";
//在被拦截的方法执行完毕后 继续执行当前方法,注意是被拦截的是异步的
invocation.Proceed();
dataIntercept += ($"方法执行完毕,返回结果:{invocation.ReturnValue}");
#region 输出到日志文件
#endregion
}
只需要我们 ServiceConfigure 中开启服务以后,就可以在指定文件中,看到每次的切面接口调用情况,注意这里是 service 层的,不是 controller 的日志,这个时候就是 AOP 和过滤器 Filter 的区别了:
- 1、Filter过滤器是基于当前Http请求的,也就是接口层面的,颗粒度比较大;
- 2、而AOP是基于服务切面的,是 Service 层的请求,颗粒度比较小;