Как динамически перезагружать IOptions<> при перезагрузке другого IOptions<>C#

Место общения программистов C#
Ответить
Anonymous
 Как динамически перезагружать IOptions<> при перезагрузке другого IOptions<>

Сообщение Anonymous »

Представьте следующее:

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

public class FooOptions {
public string FooProperty {get; set;}
}

public class BarOptions {
public string BarProperty {get; set;}
}

public class ConfigureBarOptions : IConfigureOptions {
private readonly IOptionsMonitor _fooOptionsMonitor;

public ConfigureBarOptions(IOptionsMonitor fooOptionsMonitor) {
_fooOptionsMonitor = fooOptionsMonitor;
}

public void Configure(BarOptions options) {
options.BarProperty = _fooOptionsMonitor.CurrentValue.FooProperty;
}
}

// in Startup.cs - bind to a configuration provider that is set to reload
services.Configure(Configuration);
Как я могу инициировать перезагрузку BarOptions, когда FooOptions перезагружается из-за базового обновления конфигурации?
Я пробовал различные попытки зарегистрировать некоторые версии:

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

services.AddSingleton(new ConfigurationChangeTokenSource(name, config));
Я также пытался придумать способ использования ChangeToken или _fooOptionsMonitor.OnChange, но, похоже, не нашел правильной реализации.

Подробнее здесь: https://stackoverflow.com/questions/697 ... ns-reloads
Ответить

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

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

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

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

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