Можно ли перенести конфигурацию из appsettings. json в базу данных в приложении ASP. NET Core MVC? - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть это приложение, которое использует 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();
}

Возможно ли это? Или я пытаюсь заново изобрести колесо?

Заранее спасибо за потраченное время!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...