C# 使用.NET注释记录方法执行时间

C# 使用.NET注释记录方法执行时间,c#,.net,serilog,C#,.net,Serilog,是否有任何现有库只使用方法注释来记录方法执行时间(我更喜欢serilog,anotar.serilog)?如果您打算记录控制器/操作的运行时间。您可以为此编写自己的中间件。检查以下示例: public class DiagnosticsMiddleware { private readonly RequestDelegate _next; public DiagnosticsMiddleware(RequestDelegate next, IElasticClient esC

是否有任何现有库只使用方法注释来记录方法执行时间(我更喜欢serilog,anotar.serilog)?

如果您打算记录控制器/操作的运行时间。您可以为此编写自己的中间件。检查以下示例:

public class DiagnosticsMiddleware 
{
    private readonly RequestDelegate _next;

    public DiagnosticsMiddleware(RequestDelegate next, IElasticClient esClient)
    {
        _next = next;
        _esClient = esClient;
    }

    public async Task Invoke(HttpContext context)
    { 
        Stopwatch sw = Stopwatch.StartNew();


        await _next(context);

        sw.Stop();
        var elapsedTime = sw.ElapsedTicks / (Stopwatch.Frequency / (1000L * 1000L));
        LogContext.PushProperty("ElapsedTime", elapsedTime);
    }

}
您可以像这样配置它

public void Configure(IApplicationBuilder app)
{
    app.UseMiddleware<ContextEnricherMiddleware>();
}
public void配置(IApplicationBuilder应用程序)
{
app.UseMiddleware();
}

/@Selvin和其他人,这个问题已经回答了,但这些问题的主题不同,这与注释无关。我问题的重点是什么?没有提到实际使用ASP.NET的OP。如前所述,您可以在ASP.NET中记录控制器调用的执行时间,它无法记录任意方法的执行时间。请相应地编辑我的帖子