在UseExtensions有兩個方法
public static class UseExtensions {
// method1
public static IApplicationBuilder Use(this IApplicationBuilder app, Func<HttpContext, RequestDelegate, Task> middleware) {
...
}
// method2
public static IApplicationBuilder Use(this IApplicationBuilder app, Func<HttpContext, Func<Task>, Task> middleware) {
...
}
}
所以當我們寫:
app.Use(async (context, next) => {
await context.Response.WriteAsync("Hello World");
await next();
});
它總是呼叫method2,我怎樣才能重寫上面的方法,以便編譯器選擇method1?
uj5u.com熱心網友回復:
在 lambda 中指定引數的型別
app.Use(async (HttpContext context, RequestDelegate next) => ...
僅僅因為我們通常不指定 then 并不意味著我們不被允許,并且在這樣的情況下指定它們允許編譯器對“這兩個相似的事情中哪一個更適合……”
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/406520.html
標籤:
上一篇:如何正確進行單元測驗聚合根?
下一篇:無法翻譯給定的“GroupBy”模式。在“GroupBy”之前呼叫“AsEnumerable”以在客戶端對其進行評估
