private static JToken[] SelectTokens([NotNull] JToken[] tokens, [NotNull] IConfigurationSelector <JToken, JToken> selector) { if (tokens == null) { throw new ArgumentNullException(nameof(tokens)); } if (selector == null) { throw new ArgumentNullException(nameof(selector)); } var configs = new JToken[tokens.Length]; for (var i = 0; i < tokens.Length; i++) { var config = tokens[i]; if (config != null) { config = selector.Select(config); } configs[i] = config; } return(configs); }
/// <summary> /// Initializes new instance of <see cref="MicrosoftConfigurationCache{T}"/>. /// </summary> /// <param name="configurationProvider">Configuration provider.</param> /// <param name="selector">Configuration selector.</param> /// <param name="changeTokenSource">Change token.</param> public MicrosoftConfigurationCache( [NotNull] IConfigurationProvider <IConfiguration, IConfiguration> configurationProvider, [CanBeNull] IConfigurationSelector <IConfiguration, IConfiguration> selector, [NotNull] MicrosoftConfigurationChangeTokenSource changeTokenSource) { if (changeTokenSource == null) { throw new ArgumentNullException(nameof(changeTokenSource)); } _configurationProvider = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider)); _selector = selector; _changeTokenListener = ChangeToken.OnChange(changeTokenSource.GetChangeToken, () => _lazyConfig = CreateLazyConfig()); _lazyConfig = CreateLazyConfig(); }
private JToken[] SelectTokens(IConfigurationSelector <JToken, JToken> selector) { if (selector == null) { return(_tokens); } var configs = new JToken[_tokens.Length]; for (var i = 0; i < _tokens.Length; i++) { var config = _tokens[i]; if (config != null) { config = selector.Select(config); } configs[i] = config; } return(configs); }
/// <inheritdoc /> public TConfiguration GetConfiguration <TConfiguration>(IConfigurationSelector <JToken, JToken> selector = null) { var tokens = SelectTokens(selector); return(_tokenConverter.Convert <TConfiguration>(tokens)); }
/// <inheritdoc /> public TConfiguration GetConfiguration <TConfiguration>(IConfigurationSelector <IConfiguration, IConfiguration> selector = null) { var configuration = selector == null ? _configuration : selector.Select(_configuration); return(_converter.Convert <TConfiguration>(configuration)); }