下面是一个简单的ASP.NET Core MVC中间件的案例,包含代码示例:
首先,在Startup.cs文件中,需要添加一个自定义的中间件类:
public class CustomMiddleware
{
private readonly RequestDelegate _next;
public CustomMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
// 在处理请求之前执行的代码
// ...
await _next(context);
// 在处理请求之后执行的代码
// ...
}
}
然后,在Startup.cs文件的Configure方法中,将自定义的中间件添加到管道中:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
app.UseMiddleware();
// ...
}
接下来,可以在CustomMiddleware的Invoke方法中编写具体的逻辑。例如,可以在处理请求之前记录请求的信息,处理请求之后记录响应的信息:
public async Task Invoke(HttpContext context)
{
// 在处理请求之前执行的代码
var requestPath = context.Request.Path;
Console.WriteLine($"Received request for {requestPath}");
await _next(context);
// 在处理请求之后执行的代码
var responseStatusCode = context.Response.StatusCode;
Console.WriteLine($"Sent response with status code {responseStatusCode}");
}
这个简单的中间件会在每个请求处理的前后执行相应的代码,并打印请求的路径和响应的状态码到控制台上。
希望这个简单的案例可以帮助到你理解ASP.NET Core MVC中间件的使用。