2017-08-02 42 views
2

我是C#中的異步模式的新手,並嘗試使用Asp.Net內核進行操作。Asp.Net core:在從另一箇中間件返回響應之後調用一個自定義方法

我想在從Middleware_NotifyWPF中的控制器操作收到響應之後調用方法InformUI()。 如何做到這一點? [喜歡的東西request.on( '結束')的事件處理程序的Middleware_NotifyWPF]

Startup.cs:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
     { 
      app.Middleware_NotifyWPF(); 
      app.UseMvc(); 
     } 

中間件1:

public class Middleware_NotifyWPF 
     { 
      private readonly RequestDelegate _next; 
      private static Logger _logger = LogManager.GetCurrentClassLogger(); 

      public Middleware_NotifyWPF(RequestDelegate next) 
      { 
       _next = next; 
      } 

      public Task Invoke(HttpContext httpContext) 
      { 
       return _next(httpContext); 


       InformUI(httpContext.Request, httpContext.Response); //Unreachable code 
      } 
} 

控制器類|操作方法

 [HttpGet("{id}")] 
     public string Get(int id) 
     { 
      return "value"; 
     } 
+1

課程代碼來達到代碼是return語句後無法訪問,有什麼,你期待?將方法更改爲'async Task',使用'await _next(httpContext)'並移除該'return'語句 –

回答

3

你需要等待的任務,以便能夠後

public async Task Invoke(HttpContext httpContext) 
{ 
    await _next(httpContext); 

    InformUI(httpContext.Request, httpContext.Response); 
} 
相關問題