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?