Цель
Я хотел бы разработать приложение, которое извлекает свои конфигурации в реальном времени из внешней веб-службы на основе значения времени выполнения (tenantId). Это означает, что для каждого запроса / области необходимо перезагрузить конфигурации. В качестве первого шага кэширование конфигурации не требуется.
Подход / Мысли / Вопросы
- Поскольку ядро do tnet предоставляет работающий интерфейс
IConfiguration
Хорошо с шаблоном параметров. Мне было интересно, достижимо ли вышеперечисленное с помощью пользовательского ConfigurationProvider
, который имеет дело с загрузкой конфигурации по запросу, в то время как остальная часть приложения вводит IOptionsSnapshot<>
для получения конфигурации. - Моя первоначальная мысль заключалась в том, чтобы использовать промежуточное ПО, которое запускает перезагрузку при каждом запросе, но это кажется немного хакерским и, вероятно, не лучшим подходом?
- Для моего требований, не лучше ли было бы просто использовать шаблон параметров с настраиваемой реализацией
IConfigureOptions
для каждого параметра, который будет извлекать конфигурацию во время выполнения, вместо использования настраиваемого ConfigurationProvider
? - В этом случае, как я могу преодолеть сценарий ios, в котором внешние библиотеки классов запрашивают IConfigurationSection для получения их конфигурации?
- Не лучше ли избежать любого из вышеперечисленных подходов и просто использовать настраиваемую службу, которая будет внедрена любой службой, требующей значения конфигурации?
- Это позволит получить больший контроль над конфигурацией и кешем, но это означает, что эта настраиваемая служба конфигурации будет распространяться внутри всего приложения вместо использования стандартной IConfiguration. Думаю, это могло бы быть нормально, но опять же, мы должны иметь дело с внешними библиотеками, которые используют IConfiguration.
- Есть ли другой рекомендуемый подход, который я не перечислил, и вы считаете лучшим вариантом для моего требования?
Любая помощь приветствуется