如何在.net运行时中跟踪代码

如何在.net运行时中跟踪代码,.net,trace,.net,Trace,我想在我的项目中进行性能监控,我不想在每个函数中添加跟踪代码 我想做(自动跟踪): 那么,我该怎么办,谢谢你 这不是C#自己可以做到的(在方法的开头和结尾运行指定的代码,而不是手动编写这些代码行),除非您使用re-compiler/weaver,也称为面向方面编程。这通常是通过第三方工具完成的。如果将方法体包装在using语句中,其中相关代码在构造函数和dispose语句中运行,则可以将boiler板压缩为1行代码和2个backets。谢谢MatthewMartin,“dottrace”等第三方

我想在我的项目中进行性能监控,我不想在每个函数中添加跟踪代码

我想做(自动跟踪):


那么,我该怎么办,谢谢你

这不是C#自己可以做到的(在方法的开头和结尾运行指定的代码,而不是手动编写这些代码行),除非您使用re-compiler/weaver,也称为面向方面编程。这通常是通过第三方工具完成的。如果将方法体包装在using语句中,其中相关代码在构造函数和dispose语句中运行,则可以将boiler板压缩为1行代码和2个backets。谢谢MatthewMartin,“dottrace”等第三方工具是否使用钩子或其他工具?
  public class ManagerBase
    {
        public void Trace()
        { 
            //trace begin
            DoSth();
            //trace end
            //i want get stacktrace in Manager.DoSth and every method's execution time
        }

        protected virtual void DoSth(){}
    }

    public class Manager : ManagerBase
    {
        protected override void DoSth()
        {
            Function1();
            Function2();
            Function3();
        }

        private void Function1() { }
        private void Function2() { }
        private void Function3() { }
    }