usführungszeit der Verfolgungsmethod

Ich versuche, benutzerdefinierte Ablaufverfolgungsmethoden in meine Anwendung einzufügen.

Ich möchte es so elegant wie möglich gestalten, ohne großen Teil des vorhandenen Codes zu verändern, und die Möglichkeit haben, es einfach zu aktivieren / deaktivieren.

Eine Lösung, die ich mir vorstellen könnte, wäre, ein benutzerdefiniertes @ zu erstelleAttribute was ich es an die Methoden anhängen werde, die ich verfolgen möchte.

Grundidee

public class MethodSnifferAttribute : Attribute
{
    private Stopwatch sw = null;

    public void BeforeExecution()
    {
        sw = new Stopwatch();
        sw.Start();
    }
    public void ExecutionEnd()
    {
        sw.Stop();
        LoggerManager.Logger.Log("Execution time: " + sw.ElapsedMilliseconds);
    }
}

public class MyClass
{
    [MethodSniffer]
    public void Function()
    {
        // do a long task
    }
}

Gibt es ein vorhandenes.NET Attribute, die Rückrufe für das Aufrufen / Beenden einer Methode bereitstellen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage