public void Add(NameValueCollection nvc, KeyValueOrigin.Source origin) { nvc.IsNullThrow(nameof(nvc)); for (int i = 0; i < nvc.Count; ++i) { Add(nvc.GetKey(i), nvc.Get(i), origin); } }
public void Add(string key, string value, KeyValueOrigin.Source origin, bool replace = false) { if (replace) { dictionary[key] = new KeyValueOrigin(key, value, origin); } else { dictionary.Add(key, new KeyValueOrigin(key, value, origin)); } }
protected virtual void ConfigureApplication(string[] args) { // command line overrides configuration file // -dev DeveloperMode - Login database combo box to allow selection or not // -use "key or connection string" UseConnection - Works one of three ways // 1. If omitted, ConfigurationManager.ConnectionStrings[Default] or ConfigurationManager.ConnectionStrings[0] is used (in that order) // 2. Specifies the connection string to use // 3. Specifies the key as in ConfigurationManager.ConnectionStrings[key] to use log.Info("Process application configuration file."); settings.Add(ConfigurationManager.AppSettings, KeyValueOrigin.Source.AppConfig); connectionStrings = ConfigurationManager.ConnectionStrings; foreach (ConnectionStringSettings css in connectionStrings) { KeyValueOrigin.Source origin = KeyValueOrigin.Source.AppConfig; // Find a better way to determine if a setting was inherited from MACHINE.config if (0 == string.Compare(css.Name, "LocalSqlServer", StringComparison.Ordinal)) { origin = KeyValueOrigin.Source.MachineConfig; } settings.Add(css.Name, css.ConnectionString, origin); } log.Info("Process command line."); for (int i = 0; i < args.Length; ++i) { string s = args[i]; if (s.StartsWith("-dev", StringComparison.OrdinalIgnoreCase)) { settings.Add("DeveloperMode", "true", KeyValueOrigin.Source.CommandLine); } if (s.StartsWith("-use", StringComparison.OrdinalIgnoreCase) && args.Length >= (i + 2)) { settings.Add("UseConnection", args[i + 1], KeyValueOrigin.Source.CommandLine, true); } } foreach (DictionaryEntry de in Environment.GetEnvironmentVariables()) { Settings.Add(de.Key.ToString(), de.Value.ToString(), KeyValueOrigin.Source.Environment); } log.Debug("Global application configuration settings:"); foreach (KeyValueOrigin nvo in settings.Settings) { log.DebugFormat(" {0, -15}{1, -25}{2}", nvo.Origin.ToString(), nvo.Key, nvo.Value); } }