今天也要做这个功能,就百度一下,结果搜索到了自己的文章。一开始还没注意,当看到里面的一个注释的方法时,一开始还以为自己复制错了代码,结果仔细一看网页的文章,我去,原来是自己写的,写的确实不咋地。
把自己的文章的代码复制了下来,稍微改了一下,运行看了一下效果,然后仔细一看,计算的总时间不对,如下图:
上一篇文章的地址:https://www.cnblogs.com/guxingy/p/10142242.html
改了几个地方:
/// <summary> /// 拦截器 /// </summary> public class CallingLogInterceptor : IInterceptor { private DateTime dt { get; set; } private TimeSpan ts { get; set; } /// <summary> /// 方法执行前 /// </summary> /// <param name="invocation"></param> private void PreProceed(IInvocation invocation) { dt = DateTime.Now; } /// <summary> /// 方法执行后 /// </summary> /// <param name="invocation"></param> private void PostProceed(IInvocation invocation) { ts = DateTime.Now - dt; Console.WriteLine($"方法名称:{invocation.Method.Name}" ); Console.WriteLine($"开始时间:{dt.ToString("yyyy-MM-dd HH:mm:ss fff")}"); Console.WriteLine($"结束时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff")}"); Console.WriteLine($"所用时间:{ts.TotalSeconds}"); MethodOperationInfo.Add(invocation, ts.TotalMilliseconds); } /// <summary> /// 拦截 /// </summary> /// <param name="invocation"></param> public void Intercept(IInvocation invocation) { this.PreProceed(invocation); invocation.Proceed();//调用 this.PostProceed(invocation); } }