整个 asp.Net Core应用都是在 管道中运行的,管道中放的都是中间件。下面是自定义中间件的两种方法
方法一public class TestMiddleware {//转载请保留 http://www.luofenming.com/show.aspx?id=ART2020021200001 private readonly RequestDelegate _next; public TestMiddleware(RequestDelegate next) { _next = next; } public async Task Invoke(HttpContext context) { await Task.Run(() => Console.WriteLine("测试中间件"));//这是中间件要完成的事件 await _next(context);//这是把 context传递给下一个中间件 } }下面中间使用 在Startup类 Configure里面应用中间件
app.UseMiddleware<TestMiddleware>();方法二(直接在Startup类 Configure里面写,并应用)
app.Use(async (context, next) => { await Task.Run(() => Console.WriteLine("测试中间件2")); await next(); });
在此扩展一下,Startup类 ConfigureServices里面添加的都是 中间件所依赖的类,需要才注册到容器里面