我正在编写一个中间件(也许我想要一个范围服务??),我想我的计划是拥有某种多租户场景。
例如,如果我有 2 个响应此服务的域:
www.domain1.com
www.domain2.com
我想在请求启动时捕获请求,查看正在使用的主机名,然后通过依赖注入将其他一些对象设置为可用于管道中的所有内容。
看来中间件应该是实现这一目标的正确方法,但不确定如何执行最后一步。
我的选择似乎是:
中间件
注册Singleton服务来访问数据库
尽早注册成为第一个捕获请求的中间件。
分析请求对象并构建自定义配置对象
将自定义配置作为范围对象添加到 DI 容器以供其他服务使用
服务
注册Singleton服务来访问数据库
为 IHttpContextAccessor 注册 Singleton 服务
注册范围?服务——相当于中间件
分析请求对象并构建自定义配置对象
将自定义对象注册为 DI 容器中的新作用域对象
我的假设是服务能够注册自定义范围的对象,因为它仍在ConfigureServices
startup.cs的方法中
然而,对于中间件来说,它是通过Configure
DI 容器已经构建完成的方法来初始化的?
ITMISS
相关分类