1

我需要使用第三方工具来测量处理 API 中每个请求所花费的时间。我的代码将如下所示,

 [HttpGet("{id}")]
 public string Get(int id)
 {
    using (SomeTool.Start.Measuring)
    {
       //Do the process
       return "somevalue";
    }
 }

我需要在所有控制器和方法中添加此代码。我怎样才能创建一个中间件来做到这一点?这样我就不需要在所有方法中添加此代码。

在这里,我的自定义工具会将处理请求所花费的时间发送到我们用于矩阵的引擎。

4

1 回答 1

1

使用 ASP.NET Core,它可以像 (in Startup.Configure()) 一样简单:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    //  ...

    app.Use(async (context, next) =>
    {
        using (SomeTool.Start.Measuring)
        {
            await next.Invoke();
        }
    });

    app.UseMvc();
}

此处的顺序或添加的中间件很重要,请确保您在app.UseMvc().

于 2018-03-15T12:21:55.500 回答