Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
 /// <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));
 }
Esempio n. 3
0
 /// <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));
 }
Esempio n. 4
0
 /// <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);
 }