WatchMethod.cs 754 B

12345678910111213141516171819202122232425
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using ArxOne.MrAdvice.Advice;
  5. namespace SAGA.Tools
  6. {
  7. public class WatchMethod : Attribute, IMethodAdvice
  8. {
  9. public void Advise(MethodAdviceContext context)
  10. {
  11. System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
  12. stopwatch.Start(); // 开始监视代码
  13. context.Proceed();
  14. stopwatch.Stop(); // 停止监视
  15. TimeSpan timeSpan = stopwatch.Elapsed; // 获取总时间
  16. double seconds = timeSpan.TotalSeconds; // 秒数
  17. Logs.Log($"方法 【{Name ?? context.TargetName}】耗时:{seconds}");
  18. }
  19. public string Name { get; set; }
  20. }
  21. }