У меня есть это приложение, которое использует appsettings.json
для хранения некоторых конфигураций, таких как адреса API, токены, пути для сохранения файлов и т. Д. c.
У нас нет DevOps, поэтому для каждого изменения мы делаем в настройках приложения, нам нужно попросить команду инфраструктуры развернуть изменения в рабочей среде.
Тем не менее, я думаю, возможно ли разместить часть этой конфигурации в базе данных и в конструкторе Startup
или в ConfigureServices
, чтобы получить эту информацию из базы данных и использовать ее в приложении.
Просто не требуется новое развертывание каждый раз, когда я, например, добавляю новый ключ в настройки приложения. Я просто создал бы новую запись в базе данных, и приложение будет использовать эту конфигурацию, как если бы она была в настройках приложения.
Сегодня у нас есть это:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
И я хочу знать, если есть жизнеспособное или возможное что-то вроде этого:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.GetConfigFromDataBase() /// And this will be the method to get from DB the dynamic configuration
.AddEnvironmentVariables();
Configuration = builder.Build();
}
Возможно ли это? Или я пытаюсь заново изобрести колесо?
Заранее спасибо за потраченное время!