.net core 自定義中間件

 public class MyMiddleware
    {
        //private IConfiguration _configuration;
        //第一步:
        private RequestDelegate _next;// using Microsoft.AspNetCore.Http;
        //加一個構造方法.構造方法第一個參數必須是RequestDelegate類型,表示爲中間件類型,便是表示爲下一個中間件。定義中間件時必須包含對下一個中間件的引用。
        public MyMiddleware(RequestDelegate next)
        {
            _next = next;//經過私有字段去接收下一個中間件的引用,由於咱們在其餘地方須要用這個下一個中間件next。這步是關鍵,必須的有,這個實現把中間件串聯起來
            //_configuration = configuration;
        }
        //第二步增長Task InvokeAsync(HttpContext context)方法,方法名稱固定爲InvokeAsync,返回值爲Task
        public async Task InvokeAsync(HttpContext context)
        {
            await context.Response.WriteAsync("test");
            await _next.Invoke(context);
        }
}
接下來在StartUp.cs文件的Configure方法中注入啓用中間件。使用UseMiddleware方法註冊:
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseMiddleware<MyMiddleware>();//啓用中間件 app.UseCookiePolicy(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }
相關文章
相關標籤/搜索