【发布时间】:2021-03-20 23:41:50
【问题描述】:
我有一个使用 Autofac 多租户容器的 .net 核心 Web 应用程序。 租户策略通过查看 HTTP 请求的路径来解析租户。
但是,有一个特定的功能,租户 A 需要使用另一个租户 B(在这种情况下为子租户)的配置;问题是直到租户 A 已经执行了一些逻辑来知道它需要使用哪个子租户的配置时才知道。
有没有办法在运行时获取另一个租户的服务?
我会尝试用一个例子来说明:
我所拥有的或多或少:
- 对 GET my.host.net/A/rules 的 HTTP 请求
- 租户解析器能够识别当前租户是 A(它在路径中,就在主机名之后)
- 租户解析器从数据库中获取通用规则,其中一条表示应该使用另一个租户B的配置
- 从现在开始,我想使用租户 B 的服务。
我尝试过/想到了什么?
- 保存多租户容器并使用 GetTenantScope 在解析要使用的服务的类工厂中解析租户 B 的范围。但是,我不知道在内存使用方面的影响以及混合租户可能出现的问题
- 忘记多租户,只需将每个租户的配置保存在特定类中。
【问题讨论】:
标签: .net-core dependency-injection containers autofac multi-tenant