/// <summary> /// Loads a manager with the specified parameters. /// </summary> /// <param name="allowLocalOverrides">if set to <c>true</c> [allow local overrides].</param> /// <param name="fileNames">The file names.</param> /// <returns>A flexible configuration object.</returns> public static IFlexibleConfiguration Load(bool allowLocalOverrides, params string[] fileNames) { var config = new FlexibleConfiguration(); foreach (var fileName in fileNames) { var configuration = OpenFile(fileName); var connectionStringsXml = configuration.ConnectionStrings.SectionInformation.GetRawXml(); if (!string.IsNullOrWhiteSpace(connectionStringsXml)) { var connectionStringsDataSet = XDocument.Parse(connectionStringsXml); foreach (var cs in connectionStringsDataSet.Descendants("add")) { string name = cs.Attribute("name").Value; string value = cs.Attribute("connectionString").Value; string provider = cs.Attribute("providerName").Value; var connectionStringSettings = new ConnectionStringSettings(name, value, provider); int index = config.connectionStrings.IndexOf(connectionStringSettings); if (index >= 0) { config.connectionStrings[index] = connectionStringSettings; } else { config.ConnectionStrings.Add(connectionStringSettings); } } } var appSettingsXml = configuration.AppSettings.SectionInformation.GetRawXml(); if (!string.IsNullOrWhiteSpace(appSettingsXml)) { var asDataSet = XDocument.Parse(appSettingsXml); foreach (var cs in asDataSet.Descendants("add")) { string key = cs.Attribute("key").Value; string value = cs.Attribute("value").Value; config.AppSettings[key] = value; } } } if (allowLocalOverrides) { foreach (ConnectionStringSettings cs in ConfigurationManager.ConnectionStrings) { int index = config.connectionStrings.IndexOf(cs); if (index >= 0) { config.connectionStrings[index] = cs; } else { config.ConnectionStrings.Add(cs); } } foreach (string key in ConfigurationManager.AppSettings) { config.appSettings[key] = ConfigurationManager.AppSettings[key]; } } return(config); }
/// <summary> /// Configures the manager with the specified parameters and sets the instance to the resulting configuration manager. /// </summary> /// <param name="allowLocalOverrides">if set to <c>true</c> [allow local overrides].</param> /// <param name="fileNames">The file names.</param> public static void Configure(bool allowLocalOverrides, params string[] fileNames) { FlexibleConfiguration.Configure(FlexibleConfiguration.Load(allowLocalOverrides, fileNames)); }
/// <summary> /// Loads a manager with the specified parameters. /// </summary> /// <param name="fileNames">The file names.</param> /// <returns>A flexible configuration object.</returns> public static IFlexibleConfiguration Load(params string[] fileNames) { return(FlexibleConfiguration.Load(true, fileNames)); }
/// <summary> /// Configures the manager with the specified parameters and sets the instance to the resulting configuration manager. /// </summary> /// <param name="fileNames">The file names.</param> public static void Configure(params string[] fileNames) { FlexibleConfiguration.Configure(true, fileNames); }