我们有一个.net核心api,它具有在多个租户的配置中定义的业务规则。并且目标是使该api为多租户,以便无论哪个租户发送请求,该api都可以通过从配置中读取相应的租户业务规则来满足该请求。
例如:
portalsettings.json
portalsettings.tenantA.json
portalsettings.tenantB.json
并加载如下配置:
var tenantName = "tenantA";//todo: read from request header
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("portalsettings.json", optional: true, reloadOnChange: false)
.AddJsonFile($"portalsettings.{tenantName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
然后在控制器中注入配置,如下所示:
public class HomeController
{
private readonly PortalSettingsPoCo _portalSettings { get; set; }
public HomeController(IOptions<PortalSettingsPoCo> portalSettings)
{
_portalSettings = portalSettings.Value;
}
}
上述代码的问题是,中间代码只能运行一次,并且我无法基于来自标头的tenantName注入门户设置。
请让我知道是否有人需要更多详细信息。