我正在尝试在ASP.NET MVC中创建一个中间件组件。
有了这个示例类,我找到了:
public class RequestLoggerMiddleware
{
private readonly RequestDelegate _next;
private readonly ILogger _logger;
public RequestLoggerMiddleware(RequestDelegate next, ILoggerFactory loggerFactory)
{
_next = next;
_logger = loggerFactory.CreateLogger<RequestLoggerMiddleware>();
}
public async Task Invoke(HttpContext context)
{
_logger.LogInformation("Handling request: " + context.Request.Path);
await _next.Invoke(context);
_logger.LogInformation("Finished handling request.");
}
}
VS无法检测到RequestDelegate类。 我是否必须下载某个nuget包?
我引用了OWIN v1.0.0.0和Microsoft.Owin v3.0.1.0。
这个中间件实现有效,但它没有使用&#34; RequestDelegate&#34;:
public class MyMiddleware
{
Func<IDictionary<string, object>, Task> _next;
public MyMiddleware(Func<IDictionary<string, object>, Task> next)
{
_next = next;
}
public async Task Invoke(IDictionary<string, object> env)
{
await _next(env);
}
}
他们之间有什么区别?