Akka.Configuration.Config.AsEnumerable C# (CSharp) Method

AsEnumerable() public method

Retrieves an enumerable key value pair representation of the current configuration.
public AsEnumerable ( ) : HoconValue>>.IEnumerable
return HoconValue>>.IEnumerable
        public virtual IEnumerable<KeyValuePair<string, HoconValue>> AsEnumerable()
        {
            var used = new HashSet<string>();
            Config current = this;
            while (current != null)
            {
                foreach (var kvp in current.Root.GetObject().Items)
                {
                    if (!used.Contains(kvp.Key))
                    {
                        yield return kvp;
                        used.Add(kvp.Key);
                    }
                }
                current = current.Fallback;
            }
        }

Usage Example

        /// <summary>
        /// Initializes nginx location configuration from self configuration
        /// </summary>
        /// <param name="host">The parent server configuration</param>
        /// <param name="serviceName">Location name</param>
        /// <param name="config">Section of self configuration, dedicated for the service configuration</param>
        private void InitServiceFromConfiguration(HostConfiguration host, string serviceName, Config config)
        {
            StringBuilder serviceConfig = new StringBuilder();
            foreach (var parameter in config.AsEnumerable())
            {
                if (parameter.Value.IsString())
                {
                    serviceConfig.AppendFormat("\t\t{0} {1};\n", parameter.Key, parameter.Value.GetString());
                }
                else if (parameter.Value.IsArray())
                {
                    var hoconValues = parameter.Value.GetArray();
                    foreach (var hoconValue in hoconValues)
                    {
                        serviceConfig.AppendFormat("\t\t{0} {1};\n", parameter.Key, hoconValue.GetString());
                    }
                }
            }

            // proxy_set_header Host $http_host;
            var headers = config.GetValue("proxy_set_header");
            if (headers == null
                || (headers.IsString()
                    && (headers.GetString() ?? string.Empty).ToLower()
                           .IndexOf("Host ", StringComparison.InvariantCulture) < 0)
                || (headers.IsArray()
                    && headers.GetArray()
                           .Select(v => v.GetString())
                           .All(
                               v =>
                               (v ?? string.Empty).ToLower().IndexOf("Host ", StringComparison.InvariantCulture) < 0)))
            {
                serviceConfig.Append("\t\tproxy_set_header Host $http_host;\n");
            }

            host[serviceName].Config = serviceConfig.ToString();
        }
All Usage Examples Of Akka.Configuration.Config::AsEnumerable