【NetCore】09-中间件
在.NET Core中,中间件是组成应用程序请求处理管道的一系列组件,每个组件可以在下一个组件之前或之后执行特定的任务。
以下是一个创建自定义中间件的简单示例:
- 创建中间件类:
public class CustomMiddleware
{
private readonly RequestDelegate _next;
public CustomMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
// 在调用下一个中间件之前可以执行的代码
await context.Response.WriteAsync("Before next middleware\n");
// 调用下一个中间件
await _next(context);
// 在调用下一个中间件之后可以执行的代码
await context.Response.WriteAsync("After next middleware\n");
}
}
- 在Startup.cs中配置服务和中间件:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// 添加服务到容器
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
// 添加自定义中间件到请求处理管道
app.UseMiddleware<CustomMiddleware>();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync("Hello World!");
});
});
}
}
当请求到达应用程序时,它首先经过自定义中间件,然后是其他配置的中间件,最后到达端点路由处理请求。
评论已关闭