有没有一种方法可以对OWIN中间件使用自定义激活器?

问题描述

我想控制OWIN创建注册中间件的方式。例如,使用以下代码注册MyCustomMiddleware时:

app.Use<MyCustomMiddleware>();

我想成为调用MyCustomMiddleware构造函数并传递所有必需参数的人。出于动机,请想象一下以下情况:

  • MyCustomMiddleware构造函数需要一些应根据当前请求创建的参数,
  • 参数应从DI容器中解决,
  • 我想控制MyCustomMiddleware的生存期。

我发现了一些有关如何将OWIN与SimpleInjector或Ninject一起使用的评论。但是我找不到任何与特定DI库无关的东西。

解决方法

app.Use((c,next) =>
{
    IMiddleware middleware = new MyCustomMiddleware(...);
    return middleware.InvokeAsync(c,_ => next());
});

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...