ASP.NET 5: как перезагрузить строго типизированную конфигурацию при измененииC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 ASP.NET 5: как перезагрузить строго типизированную конфигурацию при изменении

Сообщение Anonymous »

Мне удалось настроить строго типизированную конфигурацию в ASP.NET 5, и она работает отлично. Я также установил автоматическую перезагрузку конфигурации при изменении файлов конфигурации .json. Но это работает, только если я использую нетипизированную конфигурацию. Строго типизированный класс конфигурации по-прежнему сохраняет старые значения при изменении файлов .json.

Я настраиваю конфигурацию следующим образом:

Код: Выделить всё

public IConfiguration Configuration { get; set; }
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
// Setup configuration sources
var builder = new ConfigurationBuilder()
.AddJsonFile("config.json")
.AddJsonFile($"config.{env.EnvironmentName}.json");
Configuration = builder.Build()
.ReloadOnChanged("config.json")
.ReloadOnChanged($"config.{env.EnvironmentName}.json");
/* ... (unrelated stuff edited away) ... */
}
И привязываем вот так:

Код: Выделить всё

public void ConfigureServices(IServiceCollection services)
{
/* ... (unrelated stuff edited away) ... */
services.AddOptions();
services.AddInstance(Configuration);
services.Configure(Configuration.GetSection("AppSettings"));
services.Configure(Configuration.GetSection("DbSettings"));
/* ... (unrelated stuff edited away) ... */
}
(Файлы конфигурации выглядят следующим образом:)

Код: Выделить всё

{
"AppSettings": {
"This": "that",
"Foo": "bar"
/* etc... */
},
"DbSettings": {
/* (db settings here) */
}
}
(И у меня, соответственно, есть такой класс C#:)

Код: Выделить всё

public class AppSettings
{
public string This { get; set; }
public string Foo { get; set; }
/* etc... */
}
Когда я получаю IOptions посредством внедрения зависимостей, он не меняется, когда я меняю config.json и конфигурацию. Файлы Dev.json. Мне нужно перезапустить все веб-приложение, чтобы обновить класс конфигурации. Но если вместо этого я использую нетипизированный экземпляр IConfiguration, он автоматически изменится при изменении файлов json.

Итак, вопрос заключается в следующем: как сделать строго типизированный экземпляр изменение конфигурации при изменении файла .json без перезапуска веб-приложения?

Подробнее здесь: https://stackoverflow.com/questions/361 ... -on-change
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как зарегистрировать типизированную службу httpClient с помощью autofac?
    Anonymous » » в форуме C#
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Строго типизированные утверждения в ASP.NET Core
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Строго типизированные утверждения в ASP.NET Core
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Как добавить конфигурацию из файла в пакете NuGet в конфигурацию проекта при его импорте?
    Anonymous » » в форуме C#
    0 Ответы
    96 Просмотры
    Последнее сообщение Anonymous
  • Как автоматически перезагрузить Django при изменении файлов?
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»