在 app.GetMap() 函数中返回任务
Returning a Task in app.GetMap() function
我正在尝试将来自 user-agent 请求 headers 的简单字符串写入浏览器。
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", (context) => return context.Request.Headers["User-Agent"].ToString(););
app.Run();
这给出了编译错误 Cannot convert expression type 'string' to return type 'System.Threading.Tasks.Task'
。
对此的正确解决方案是什么。据我了解,我需要用任务将字符串 context.Request.Headers["User-Agent"].ToString();
包装起来,但我真的不知道如何在箭头函数中正确执行此操作。
做这样的事情:
Task.FromResult(context.Request.Headers["User-Agent"].ToString());
这会起作用:
app.MapGet("/", (HttpContext context) => context.Request.Headers["User-Agent"].ToString());
因为参数的名称并不重要。如果你看图片,你可以看到编译器假设参数是 HttpRequest
,而不是 HttpContext
.
我正在尝试将来自 user-agent 请求 headers 的简单字符串写入浏览器。
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", (context) => return context.Request.Headers["User-Agent"].ToString(););
app.Run();
这给出了编译错误 Cannot convert expression type 'string' to return type 'System.Threading.Tasks.Task'
。
对此的正确解决方案是什么。据我了解,我需要用任务将字符串 context.Request.Headers["User-Agent"].ToString();
包装起来,但我真的不知道如何在箭头函数中正确执行此操作。
做这样的事情:
Task.FromResult(context.Request.Headers["User-Agent"].ToString());
这会起作用:
app.MapGet("/", (HttpContext context) => context.Request.Headers["User-Agent"].ToString());
因为参数的名称并不重要。如果你看图片,你可以看到编译器假设参数是 HttpRequest
,而不是 HttpContext
.