Rastreando o tempo de execução dos métodos
Estou tentando "injetar" métodos de rastreamento personalizados no meu aplicativo.
Quero torná-lo o mais elegante possível, sem modificar muito do código existente, e tenho a possibilidade de habilitá-lo / desabilitá-lo facilmente.
Uma solução que eu poderia pensar seria criar um personalizadoAttribute
que eu anexarei aos métodos que eu quero rastrear.
Ideia básica:
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
}
}
Existe algum.NET
atributos que fornecem retornos de chamada para quando um método é chamado / finalizado?