使用最少的代码更改记录所有MethodCalls(C#3.0,.NET 3.5)

时间:2009-07-17 13:46:18

标签: c# reflection logging

我有一个我需要分析的应用程序。我这里有源代码。我已经找到了一种使用以下代码记录方法调用的方法:

内部方法: logger.MethodTraceLog();

    public void MethodTraceLog()
    {
        var msg = "MethodTraceLog: " 
            + this.log.Logger.Name 
            + " ### "
            + new StackFrame(1).GetMethod().Name ;

        this.log.Debug(msg);
    }

有没有办法将日志记录调用“注入”到类的每个方法中,而不必重写整个源代码。正如我所说,我可以,但这只是很多工作。一些“通过反射发布函数调用”在构造函数中,或类似的东西?

感谢您的提示...... 如果有人有一些额外的链接来分析应用程序的“行为”,我不会拒绝它:-)任何框架在那里? (除了断点和大量的F-Key击球)

3 个答案:

答案 0 :(得分:4)

实际上,有一个名为面向方面编程(AOP)的概念和一个名为PostSharp(http://www.postsharp.org/)的c#实现,它允许您在编译后注入代码。

答案 1 :(得分:0)

我建议你做两件事:一,得到NDepend

二,获取Visual Studio 2010 beta 1.如有必要,在VM中运行它。我相信它会从代码生成序列图,并具有其他功能来帮助理解高级代码库。除了理解之外,您不必使用它。

缺点是,我特此向您传达道歉义务,即http://connect.microsoft.com/visualstudio报告您发现的错误。

:-)

答案 2 :(得分:0)

Visual Studio Team System's Profiler tool,在检测模式下运行时,可以报告“最常调用函数”等指标

Performance Report Summary http://i.msdn.microsoft.com/aa718874.fig3(en-us).jpg

如果您的Visual Studio版本中包含此功能,您可能需要考虑使用此功能。