ASP.NET MVC 5.2.3.0中间件组件(VS2015)

时间:2016-04-05 13:29:57

标签: c# asp.net-mvc-5.2 owin-middleware

我正在尝试在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);
    }
}

他们之间有什么区别?

0 个答案:

没有答案