private void InvokeChanged() { _optionsCache = new OptionsCache <TOptions>(_setups); foreach (var listener in _listeners) { listener?.Invoke(_optionsCache.Value); } }
/// <summary> /// 初始化。 /// </summary> /// <param name="setups">描述配置其选项类型集合。</param> /// <param name="sources">跟踪选项更改类集合。</param> public OptionsMonitor(IEnumerable <IConfigureOptions <TOptions> > setups, IEnumerable <IOptionsChangeTokenSource <TOptions> > sources) { _sources = sources; _setups = setups; _optionsCache = new OptionsCache <TOptions>(setups); foreach (var source in _sources) { ChangeToken.OnChange( () => source.GetChangeToken(), () => InvokeChanged()); } }
/// <summary> /// 初始化。 /// </summary> /// <param name="setups">描述配置其选项类型集合。</param> public OptionsManager(IEnumerable <IConfigureOptions <TOptions> > setups) { _optionsCache = new OptionsCache <TOptions>(setups); }