【发布时间】:2020-06-24 21:11:19
【问题描述】:
目标
我想开发一个基于运行时值 (tenantId) 从外部 Web 服务实时获取其配置的应用程序。这意味着对于每个请求/范围,都应该重新加载配置。第一步,不需要配置缓存
方法/想法/问题
- 由于 dotnet core 提供了与选项模式配合良好的
IConfiguration接口,我想知道上述是否可以通过自定义ConfigurationProvider实现,该ConfigurationProvider处理每个请求的配置负载,而应用程序的其余部分注入@ 987654323@ 获取配置。- 我最初的想法是使用在每个请求中触发重新加载的中间件,但这似乎有点不合时宜,可能不是最好的方法?
- 根据我的要求,对于将在运行时获取配置的每个选项使用带有自定义
IConfigureOptions实现的选项模式而不是使用自定义ConfigurationProvider会更好吗?- 在这种情况下,如何克服外部类库请求 IConfigurationSection 来获取其配置的情况?
- 最好避免使用上述任何方法,而只使用需要配置值的任何服务注入的自定义服务?
- 这将允许对处理配置和缓存进行更多控制,但这意味着此自定义配置服务将在整个应用程序中传播,而不是使用标准 IConfiguration。我猜这可能没问题,但我们必须再次处理使用 IConfiguration 的外部库。
- 是否还有其他我未列出的推荐方法,并且您认为更适合我的要求?
非常感谢任何帮助
【问题讨论】:
标签: c# .net-core configuration